Python爬虫实战-采集微博评论,看看大家都在讨论什么
2023-12-14 17:13:10
嗨喽,大家好呀~这里是爱看美女的茜茜呐
开发环境:
-
python 3.8: 解释器
-
pycharm: 代码编辑器
模块使用:
-
requests: 发送请求
-
parsel: 解析数据 jieba pandas stylecloud
如何安装python第三方模块:
-
win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车
-
在pycharm中点击Terminal(终端) 输入安装命令
👇 👇 👇 更多精彩机密、教程,尽在下方,赶紧点击了解吧~
python源码、视频教程、插件安装教程、资料我都准备好了,直接在文末名片自取就可
爬虫原理:
模拟成 客户端(浏览器/手机) 向 服务器 发送网络请求
爬虫实现流程:
一. 思路分析
找到数据来源 https://weibo.com/ajax/statuses/buildComments?is_reload=1&id=4863981833423714&is_show_bulletin=2&is_mix=0&count=10&uid=1223178222
network 记录网页数据 请求
二. 实现代码
-
发送请求
-
获取数据
-
解析数据
-
保存数据
代码展示
导入模块
import requests # 需要额外安装
import csv
# 半成品 (最基本的架构)
# 分布式
f = open('评论.csv', mode='a', encoding='utf-8-sig', newline='')
csv_writer = csv.writer(f)
csv_writer.writerow(['id', 'text_raw', 'source', 'like_counts', 'screen_name', 'followers_count'])
请求头
'''
python资料获取看这里噢!! 小编 V:Pytho8987(记得好友验证备注:6 否则可能不通过)
即可获取:文章源码/教程/资料/解答等福利,还有不错的视频学习教程和PDF电子书!
'''
headers = {
# 用户身份信息
'cookie': 'SINAGLOBAL=2983116536906.6313.1675064186827; UOR=,,www.baidu.com; SUB=_2A25O3LQhDeRhGeNH6lIY-CjFyT-IHXVqPtxprDV8PUJbkNANLXXDkW1NSsgssEqW-GyChLyvK7V0MBeFYsy23ElC; SUBP=0033WrSXqPxfM725Ws9jqgMF55529P9D9WWNoXNAv0FwwfrPTiDyBL285NHD95Qf1K271Knc1Kz0Ws4Dqcjci--4iK.Ri-zXi--fi-2Xi-24i--Xi-zRiKy2i--4iKnfiKy2i--fi-isi-8Fi--Xi-z4iK.7; XSRF-TOKEN=gSKn52W-3CqnU16SUOqIOY5r; _s_tentry=weibo.com; Apache=3694052218654.842.1675252819884; ULV=1675252819940:5:2:5:3694052218654.842.1675252819884:1675237842632; WBPSESS=Q4mocWB9j3toNvru27wa1agqFWvDlaxybkjDQlV26btT8dAjnZKLHT6p8NAwVhAzIbygYan56xOn7f0H4XAe_IymVa9GmASzrKUCqV6J_Ml2bYGTL_URVrA5YnjNm62kuNboZbV4Cpn1MZTfoLbEWg==',
# 防盗链
'referer': 'https://weibo.com/1223178222/MqQsvemFc',
# 浏览器基本信息
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36'
}
next = 'count=10'
while True:
url = f'https://weibo.com/ajax/statuses/buildComments?is_reload=1&id=4863981833423714&is_show_bulletin=2&is_mix=0&{next}&uid=1223178222'
- 发送请求
response = requests.get(url=url, headers=headers)
- 获取数据
.text:
获取文本数据
.json():
json字符串数据
.content:
获取二进制数据
# 2.1 出现乱码
json_data = response.json()
- 解析数据
结构化数据 : json数据{}包裹的格式 转成字典, 使用字典取值 re
非结构化数据: 网页源代码 lxml, bs4, parsel, re css/xpath/re
'''
python资料获取看这里噢!! 小编 V:Pytho8987(记得好友验证备注:6 否则可能不通过)
即可获取:文章源码/教程/资料/解答等福利,还有不错的视频学习教程和PDF电子书!
'''
data_list = json_data['data']
max_id = json_data['max_id']
for data in data_list:
text_raw = data['text_raw']
try:
source = data['source']
except:
source = "未知"
id = data['id']
like_counts = data['like_counts']
screen_name = data['user']['screen_name']
followers_count = data['user']['followers_count']
print(id, text_raw, source, like_counts, screen_name, followers_count)
- 保存数据
csv_writer.writerow([id, text_raw, source, like_counts, screen_name, followers_count])
next = 'max_id='+str(max_id)
尾语
感谢你观看我的文章呐~本次航班到这里就结束啦 🛬
希望本篇文章有对你带来帮助 🎉,有学习到一点知识~
躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。
文章来源:https://blog.csdn.net/m0_72282564/article/details/134996911
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!