第八天
爬虫
import requests
import re
需要使用的库
requests =requests.get('https://ishuo.cn/') # 文本
data = requests.text
res = re.findall('<li class="list_li">(.*?)</li>',data)
res_list = {}
for i in res:
content = re.findall('<div class="content">(.*?)</div>',i)[0]
title = re.findall('<a href="/subject/.*?">(.*?)</a>',i)[0]
desc = re.findall('</a>(04月.*?)</div>',i)[0]
res_list[title]=(content,desc)
for i in res_list.items():
print(f'{i[0]:<30} | {i[1]}'+'\n')
使用requests.get(‘url’)获取网址
requests.text
re.findall('') 检索所需信息 将所需的用括号包起来 获取的数据为list 列表类型的数据
response = requests.get('http://www.nipic.com/design/acg/renwu/index.html?page=1') # 图片
data = response.text
res =re.findall('data-src="(.*?)" ',data)
for i in res:
res_list = requests.get(i)
res_content = res_list.content
img_name = i.split('/')[-1]
f = open(img_name, 'wb')
f.write(res_content)
同等道理用re.findall()获取所需信息 得到你要的图片网址
使用requests.get() 重获信息 使用. content获取图片网址的二进制
open 打开文件
爬虫关键为找到你要的信息 在获取的源码中找到他 然后显示就行
import requests
import re
import jieba
import wordcloud
from imageio import imread
# 爬取数据
requests =requests.get('http://www.haha56.net/xiaohua/gushi/?tdsourcetag=s_pcqq_aiomsg')
requests.encoding='gb2312' # 其数据编码格式为gb2312 应更改其编码格式不然会产生乱码
data = requests.text # 获取的数据为文本
res = re.findall('<dd class="preview">(.*?)</dd>',data)
# 词云
bb=""
for i in res:
bb=bb+str(i)+" " # 词云要对字符串进行处理,所以应将数据先转换成字符串类型
mask = imread(r"C:\Users\XM\PycharmProjects\untitled\112.jpg")
w = wordcloud.WordCloud( width=1000,\
font_path=r"C:\Windows\Fonts\simhei",height=700,mask=mask,background_color='white')
data_jieba = jieba.lcut(bb) # 切片
w.generate(" ".join(data_jieba))
w.to_file("pywcloud.png")
# 词频 # 对数据进行处理排除不需要的数据
count_dict ={}
for i in data_jieba:
if len(i)==1:
continue
if i=='...' :
continue
if i not in count_dict:
count_dict[i]=1
else:
count_dict[i]+= 1
ls = list(count_dict.items()) # 列表的键值对
def func(i):
return i[1]
ls.sort(key=func)
ls.reverse() # 将数据从大到下排序
for i in ls[:10]:
print(f'{i[0]:^7}{i[1]:^5}') # 规格化输出