首页 > 编程语言 > 详细

Python学习第七天课后案例(对网站信息爬取和分析、爬取图片)      2019.07.22

时间:2019-07-22 18:45:23      阅读:85      评论:0      收藏:0      [点我收藏+]

针对文字的爬取程序

1.爬取网易首页文章标题并做词频和词云分析

程序代码:
# 导入模块包
import requests
import re
import jieba
import wordcloud

# 爬取对象链接
url = 'https://www.163.com/'
# 获取网页信息
response = requests.get(url)
data = response.text
# print(data)
# 通过正则取出自己需要的数据
title_res = re.findall('<li.*?><a href="https://news.163.com/.*?.html">(.*?)</a>',data)
# 创建一个字符变量从来接收 爬取来的信息并且变成一个整的字符串
str_data = ''
for i in title_res:
    # 将爬取信息拼接到一起
    str_data += i

# 词频统计
# 创建一个字典用来进行词语统计
data_dict = {}
# 先将所有的词进行切割
str_lcut = jieba.lcut(str_data)
for i in str_lcut:
    # 去除一些无效数据
    if i == ',' or i == ' ' or i == ':' or len(i) <2 :
        continue
    # 对每个出现的词进行汇总统计
    if i in data_dict.keys():
        data_dict[i] += 1
    else:
        data_dict[i] = 1
# 定义一个函数 用来取出列表中的后一项数据
def find_data(i):
    return i[1]
# 将统计好的每个词出现的次数和词 的字典转换成为列表
list_data = list(data_dict.items())
# 对列表中的数据进行排序
list_data.sort(key=find_data,reverse=True)
# # 取出列表中出现最多的二十个词
for i in list_data[:21]:
    print(f'{i[0]:<10} {i[1]:^5}')

# # 词云的制作
# 定义一个变量用来存放要做词云的字符
cloud_data = ""
# 将之前爬取出来的字符放到cloud_data变量中
for i in list_data:
    cloud_data += i[0]+" "
# 创建一个词云的 面板
w = wordcloud.WordCloud(background_color="white",font_path=r"C:\Windows\Fonts\FZLTCXHJW.TTF",width=1000,height=800)
# 将 字符写入到词云面板里
w.generate(cloud_data)
# 输出制作好的词云
w.to_file('pc.jpg')
运行结果:

习大大 6
阿联酋 4
阿布扎比 4
王储 4
增长 4
em 4
吹风机 4
高速 3
举行仪式 2
欢迎 2
访华 2
举行会谈 2
讲述 2
故事 2
上半年 2
我国 2
投资 2
结构 2
持续 2
优化 2
动力 2

? 制作出来的词云:

技术分享图片

针对 图片的爬取案例

第二题 爬取 斗图啦 网站的图片

程序代码:
# 第一步导入模块包
import requests
import re
import time

# 写一个函数进行图片的爬取
def get_images(type_num,nums):
    # 获取传递过来爬取多少页面的数据
    img_type = ''
    if type_num == '1':
        img_type = 'article'
    elif type_num == '2':
        img_type = 'photo'
    elif type_num == '3':
        img_type = 'zz'
    for i in range(int(nums)):
       # 设置要爬取的网站的url
       url = f'https://www.doutula.com/{img_type}/list/?page={i+1}'
       # 获取网页信息
       response = requests.get(url)
       # 取出网页的源代码
       page_code = response.text

       imgs_url = re.findall('data-original="(.*?)"', page_code)
       for img_url in imgs_url:
           # 获取图片的信息并存储
           img_res = requests.get(img_url)
           img_data = img_res.content
           img_name = img_url.split('/')[-1]
           with open('images\\' + img_name[-10:], 'wb') as f:
               f.write(img_data)
               time.sleep(0.1)
               f.flush()
           print(f'保存第{i+1}页,图片{img_name[-10:]}成功')
start = '表情包获取系统----拥有此技能从此斗图不翻车'
print(f'{start:*^50}')
type_num = input("请选择要爬取的图片类型(1.套图表情包,2.最新的表情包,3.表情包模板):")
nums = input("请输入要爬取的页数:")
get_images(type_num,nums)
运行结果:

*************表情包获取系统----拥有此技能从此斗图不翻车**************
请选择要爬取的图片类型(1.套图表情包,2.最新的表情包,3.表情包模板):2
请输入要爬取的页数:1
保存第1页,图片095t8x.jpg成功
保存第1页,图片06odfz.jpg成功
保存第1页,图片05074f.jpg成功
保存第1页,图片051q2w.gif成功
保存第1页,图片0k0mxg.jpg成功
保存第1页,图片08cweg.jpg成功
保存第1页,图片0k0wes.jpg成功
保存第1页,图片034a9v.jpg成功
保存第1页,图片05k3yz.gif成功

Python学习第七天课后案例(对网站信息爬取和分析、爬取图片)      2019.07.22

原文:https://www.cnblogs.com/foreversun92/p/11227631.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!