jieba库 爬虫day6
今日学习总结:
一、爬虫
第一步,写代码:
import requests #导入requests包 header = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36' } url ='http://www.baidu.com' #把网址给url res = requests.get(url=url) #向对方服务器发送请求
res.encoding =res.apparent_encoding #设置字符编码
print(res.text) #输出返回的地址,既是获取文本
第二步,将上述代码执行后的结果存放到html 文件

第三步,打开这个文件,点击右边的图标进入。
二、爬取弹幕
import requests from bs4 import BeautifulSoup import pandas as pd import datetime import re import jieba from wordcloud import WordCloud from imageio import imread import matplotlib.pyplot as plt import numpy as np header ={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36' } url ='http://comment.bilibili.com/69093763.xml' #69093763 是打开要爬的网页,右击 - 代码- ctrl+f - cid" -找到的 response = requests.get(url=url,headers=header) # 向对方服务器发送请求 response.encoding = response.apparent_encoding # 设置字符编码 data = response.text # 获取文本 #print(data) #输出文本 soup = BeautifulSoup(data,'lxml') #用lxml解析文本 #print(soup) d_list = soup.find_all('d') #获取所有的d标签 #print(d_list) dlst =[] #定义一个列表 for d in d_list: #循环拿出所有的d标签 danmu ={} #定义一个字典 danmu['弹幕'] = d.text danmu['时间'] =datetime.datetime.now() danmu['路径'] = url dlst.append(danmu) #往定义的弹幕字典里 添加列表dlst print(dlst) df = pd.DataFrame(dlst) #转换成二维数组,类似于excel表格 f = open('sign.txt','w',encoding = 'utf-8') for i in df['弹幕'].values: #遍历二维数组,values使之变成值 pat = re.compile('[一-龥]+') #定义过滤数据的规则:只留所有的汉字 filter_data = re.findall(pattern=pat,string = i) # 执行过滤操作 f.write("".join(filter_data)) # 写入文本,join()是把()里的 变成一个字符串 f.close() f = open('sign.txt', 'r', encoding='utf8') #打开已生成的sidn.txt 文件 data = f.read() #读文件,赋值给data result = " ".join(jieba.lcut(data)) #jieba.lcut将data切成列表,并用join变成字符串 print(result) f.close() color_mask = imread('大象.jpg') #imread 是让文本变成形状 wc = WordCloud( #生成词云对象 font_path=r'C:\Windows\Fonts\simkai.ttf', #表示修改字体 width=1000, height=800, mask=color_mask, background_color='white' ) wc.generate(result) #向对象wc中加载文本txt wc.to_file('bili.jpg') #将词云输出为图像文件 plt.imshow(wc) plt.show()
三、jieba库的使用
精确模式
import jieba txt = '中国,是以华夏文明为源泉、中华文化 为基础,并以汉族为主体民族的多民族国家,通用汉语、汉字,汉族与少数民族被统称为“中国”' res = jieba.cut(txt) #获取可迭代对象 for i in res: print(i) import jieba txt = '中国,是以华夏文明为源泉、中华文化 为基础,并以汉族为主体民族的多民族国家,通用汉语、汉字,汉族与少数民族被统称为“中国”' res = jieba.lcut(txt) #获取可迭代对象 for i in res: print(i)
全模式
import jieba txt = '中国,是以华夏文明为源泉、中华文化 为基础,并以汉族为主体民族的多民族国家,通用汉语、汉字,汉族与少数民族被统称为“中国”' res = jieba.cut(txt,cut_all=True) #获取可迭代对象 for i in res: print(i) import jieba txt = '中国,是以华夏文明为源泉、中华文化 为基础,并以汉族为主体民族的多民族国家,通用汉语、汉字,汉族与少数民族被统称为“中国”' res = jieba.lcut(txt, cut_all=True) #获取可迭代对象 for i in res: print(i)
搜索引擎模式
import jieba txt = '中国,是以华夏文明为源泉、中华文化 为基础,并以汉族为主体民族的多民族国家,通用汉语、汉字,汉族与少数民族被统称为“中国”' res = jieba.cut_for_search(txt) #获取迭代对象 for i in res: print(i) import jieba txt = '中国,是以华夏文明为源泉、中华文化 为基础,并以汉族为主体民族的多民族国家,通用汉语、汉字,汉族与少数民族被统称为“中国”' res = jieba.lcut_for_search(txt) #获取迭代对象 for i in res: print(i)
四、各种包。
requests 发送请求包
bs4 import BeautifulSoup
pandas as pd
datetime
re
jieba 分词包
wordcloud 词云包,是基于matplotlib开发的
imageio 让文本变成图形的包,用时先下载一个图片
matplotlib 可视化包
time 时间包
turtle 画笔包
。

浙公网安备 33010602011771号