提供代码运行过程的相关咨询服务,确保代码成功运行。
本文代码已同步更新到,下面公众号。请大家关注公众号 【 Python人生之技术实践】, 近期将推出 豆瓣、知乎、微博、网易云音乐、拉勾网、知网的爬虫教程,代码已经完成,在整理阶段谢谢。
爬虫方式:
1 爬取某个话题的所有的评论
2 爬取某个博主的所有微博的评论
3 爬取某个博主的所有粉丝的用户信息,位置信息
微博评论爬虫难点:
获取max_id 和 max_id_type 参数
以“迪丽热巴的微博”为案例,爬取热巴的所有微博,所有微博评论,所有粉丝的用户信息,并对所有的粉丝进行位置分析,在地图上显示粉丝分布。
1 requests_weibo.py功能:爬取迪丽热巴的所有的微博,微博内容的text保存在excel中,包括微博id
2 requests_weibo_comment.py 功能:读取热巴所有的微博id, 爬取某个微博的所有评论内容,粉丝id
3 user_infro.py 功能:读取所有粉丝id, 爬取微博用户(热巴粉丝)的基本信息(生日,位置,性别)。粉丝信息接口在代码中。
4 map_weibo_fensi.py: 对粉丝的性别和位置信息进行可视化
注意事项:
新浪微博评论内容获取时,url参数第1页,第2页至第15页,第16页及以后页码,参数是不同的。
第1页:https://m.weibo.cn/comments/hotflow?id=4511519801087016&mid=4511519801087016
第2 -15 页:max_id_type 的数值为 0
https://m.weibo.cn/comments/hotflow?id=4511519801087016&mid=4511519801087016&max_id=1290444946018013&max_id_type=0
第16页及以后:
从第16页开始max_id_type 的数值为 1, 这里最后是通过请求获取该值,不要手动修改为1。
requests_weibo.py
# time : 2020/6/1 11:37
# author :wujiajia
# email :wujiajia666@qq.com
# file : requests_weibo.py
# Software: PyCharm
# python_version: 3.6
# funcation: 获得迪丽热巴的所有微博及粉丝评论的详细url
import requests
import time
# ************************
time_ = [] # 微博发布时间
comment_url = [] # 某个微博的详细内容url
text = [] #微博文字内容
comment_num = [] #评论数
zan_num = [] # 点赞数
id = [] # 每个微博的唯一编号, 需要id 构造粉丝评论url https://m.weibo.cn/comments/hotflow?id=4510598555019129&mid=4510598555019129&max_id_type=0
def spider(a): # 参数a 表示微博的第几页
url = "https://m.weibo.cn/api/container/getIndex" # m. 表示手机登入浏览
# 请求头要改为 手机或者ipad模式
headers = {'User-Agent': 'Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1'}
data = { # 这个data 就是 xhr 中 的查询参数
"uid": "1669879400",
"t": "0",
"luicode": "10000011",
"lfid": "100103type=1&q=迪丽热巴",
"type": "uid",
"value": "1669879400",
"c