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          画笔包

posted @ 2019-10-28 21:22  薛定谔的猫66  阅读(237)  评论(0)    收藏  举报