前言
大家早好、午好、晚好吖 ❤ ~欢迎光临本文章
知识点介绍:
-
爬虫基本思路流程
-
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):# 请求方法: GETurl = 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_selectedtext = 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()
: 只支持 {}/[] 取出来之后的数据 要么是字典 要么是列表 要么就是报错
尾语 💝
好了,今天的分享就差不多到这里了!
完整代码、更多资源、疑惑解答直接点击下方名片自取即可。
对下一篇大家想看什么,可在评论区留言哦!看到我会更新哒(ง •_•)ง
喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!