前言
大家早好、午好、晚好吖 ❤ ~欢迎光临本文章
知识点介绍:
-
爬虫基本思路流程
-
requests模块的使用
-
pandas读取表格数据
环境介绍:
开发环境:
-
python 3.8 运行代码
-
pycharm 2022.3 辅助敲代码
模块使用:
-
requests >>> pip install requests
-
pandas >>> pip install pandas
-
jieba
-
stylecloud
第三方模块安装:
win + R 输入cmd 输入安装命令 pip install 模块名
(如果你觉得安装速度比较慢, 你可以切换国内镜像源)
采集弹幕代码展示
完整源码、教程 点击此处跳转文末名片获取 ,我都放在这里了。
导入模块
import requests # 发送请求 第三方模块
import csv # 内置模块 保存数据
f = open('弹幕.csv', mode='a', newline='', encoding='utf-8-sig')
csv_writer = csv.writer(f)
csv_writer.writerow(['nick', 'create_time', 'content'])
伪装及多页采集
# 请求头: 伪装
# 键: 拼音
# 值: 字
# {'user-agent': 'Mozilla/5.0....'} Python叫做字典 存储数据的 列表也是存储数据的 []
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36'
}
for i in range(0, 100):
# 请求方法: GET
url = f'https://dm.video.qq.com/barrage/segment/r0044k5cbzb/t/v1/{i*30000}/{i*30000+30000}/083002a_1666174141'
- 发送请求
# 函数传参 默认位置传参, 指定参数传参
response = requests.get(url, headers=headers)
- 获取数据 <Response [200]>: 请求成功
json_data = response.json()
- 解析数据 提取数据
# 字典(可以通过键取值) 和 列表 的取值方式
# [1,2,3,4,5,6,7]
barrage_list = json_data['barrage_list']
for barrage in barrage_list:
content = barrage['content']
nick = barrage['nick']
create_time = barrage['create_time']
print(nick, create_time, content)
- 保存数据
csv_writer.writerow([nick, create_time, content])
词云图代码
导入模块
import pandas as pd # 第三方模块
import jieba
import stylecloud
- 导入数据
df = pd.read_csv('弹幕.csv')
def get_cut_words(content_):
# 定义停用词的表
stop_words = []
with open('stop_words.txt', 'r', encoding='utf-8-sig') as f:
lines = f.readlines()
for line in lines:
stop_words.append(line.strip())
添加关键词
my_words = ['666', '某音']
for i in my_words:
jieba.add_word(i)
word_num = jieba.lcut(content_.str.cat(sep='。'), cut_all=False)
word_num_selected = [i for i in word_num if i not in stop_words and len(i) >= 2]
return word_num_selected
text = get_cut_words(df['content'])
stylecloud.gen_stylecloud(
text=' '.join(text),
collocations=False,
font_path=r'C:\Windows\Fonts\msyh.ttc',
icon_name='fab fa-youtube',
size=768,
output_name='video.png'
)
括展小知识
-
.text
: 只要是文本内容 都可以用.text -
.content
: 获取二进制数据, 如果当你访问的链接为 图片/视频/音频 -
.json()
: 只支持 {}/[] 取出来之后的数据 要么是字典 要么是列表 要么就是报错
尾语 💝
好了,今天的分享就差不多到这里了!
完整代码、更多资源、疑惑解答直接点击下方名片自取即可。
对下一篇大家想看什么,可在评论区留言哦!看到我会更新哒(ง •_•)ง
喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!