# 导入模块包
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