其他
上的什么班?我爱你的不一般!python最新微博爬取教程,看看十万网友怎么说?
声明:本文只是简单的爬虫示范,并不涉及任何商业用途。 近日有空,我又开始了新一轮的爬虫实战, 这次将魔掌伸向了新浪微博。 在今日的热搜榜上有着关于“王老板聊天记录”话题的一条热搜热度破亿, 于是我便准备以其为目标,爬取该话题下的微博中评论数据。 在爬虫的开始前,我发现微博在网上分为几个版本: 微博网页端(http://weibo.com)、 微博手机端(http://m.weibo.cn) 和微博移动端(http://weibo.cn)。 在最开始,我分别对其进行了抓包分析,发现微博手机端的评论数据比较规整,爬取难度也比较适中,这里用其进行练手。 确立目标
传送门:https://m.weibo.cn/detail/4648381753067388
需求分析
我们要获取的数据如上下:
用户id、作者名称、作者座右铭、发帖时间、发帖内容
首先我们F12打开浏览器开发者模式:
https://m.weibo.cn/comments/hotflow?id=4648381753067388&mid=4648381753067388&max_id_type=0
还有headers防反爬参数和参数params
发送请求
# 模拟浏览器防止反爬虫
headers = {
'Referer': 'https://m.weibo.cn/detail/4648381753067388',
'User-Agent': str(UserAgent().random),
'cookie': '_T_WM=90974455109; WEIBOCN_FROM=1110006030; SUB=_2A25NyTOqDeRhGeVG7lAZ9S_PwjiIHXVvMl3irDV6PUJbktB-LVDmkW1NT7e8qozwK1pqWVKX_PsKk5dhdCyPXwW1; SUBP=0033WrSXqPxfM725Ws9jqgMF55529P9D9WFGibRIp_iSfMUfmcr5kb295NHD95Q01h-E1h-pe0.XWs4DqcjLi--fi-2Xi-2Ni--fi-z7iKysi--Ri-8si-zXi--fi-88i-zce7tt; SSOLoginState=1624065018; MLOGIN=1; XSRF-TOKEN=35119d; M_WEIBOCN_PARAMS=oid%3D4648381753067388%26luicode%3D20000061%26lfid%3D4648381753067388%26uicode%3D20000061%26fid%3D4648381753067388'
}
def spider_wb(https://m.weibo.cn/comments/hotflow?id=4648381753067388&mid=4648381753067388&max_id_type=0):
params = {
'id': 4648381753067388,
'mid': 4648381753067388,
'max_id_type': 0
}
resp = requests.get(url, headers = headers, params = params)
try:
if resp.status_code == 200:
return resp.json()
else:
print('something wrong!')
except:
return None
解析页面
wb_info = data['data']['data']
for item in wb_info:
user_id = item.get("user")["id"] # 用户id
author = item['user']['screen_name'] # 作者名称
auth_sign = item['user']['description'] # 作者座右铭
time = str(item['created_at']).split(' ')[1:4]
rls_time = '-'.join(time) # 发帖时间
text = ''.join(re.findall('[\u4e00-\u9fa5]', item['text'])) # 发帖内容
print(user_id, author, auth_sign, rls_time, text)
'''
5655949340 1dontknow 假装爱会拥抱我 Jun-15-16:01:14 不回我很酷吗笑死我了
6046942091 Yukhei-0125 Jun-15-16:01:12 斤还要人心疼衰
1828233284 一口一根冰激凌 YOLO Jun-15-16:02:00 吃东西我看你一样都没少哈哈哈哈哈哈哈哈哈哈哈哈
6567329234 踹出去 废话狠多 宠物博主(糊笔版 Jun-15-16:02:33 聪聪只不过是一个斤的有钱舔狗罢了耶
7075267884 快乐没故事 存在不等于上网 Jun-15-16:03:21 哈哈哈哈草我今天去输液了想你的夜
7377196612 0梨花白0 博主是小学生,没有思想品德课,素质很低,蒽 Jun-15-16:01:45 王思聪好舔允悲
5609753822 -HappyTime 垂死挣扎的咸鱼 Jun-15-16:08:02 真的不是捡手机文学嘛笑得想死哈哈哈哈哈哈哈哈哈哈哈哈好
6318037045 世界小姐得主 I BORN LIKE THIS WAY. Jun-15-16:02:02 舔狗竟是王思聪哆啦梦害怕
5972747363 ImAndromeda_ 厕所常驻嘉宾👿👋 Jun-15-16:19:10 怎么要找人杀了我
7348013345 kiveiru鸭 三缄其口 却又四海生风 Jun-15-16:02:07 又是什么好东西自己有对象和别人在网上装情侣骗姬圈钱现在又一服不畏强权的样子骗子和狗咬狗罢了吐
7592414086 日落時· 当然是记录碎碎念啦 Jun-15-16:00:59 我养你啊笨
6072736160 又又一小口 我所做的一切,都是为了抵抗孤独 Jun-15-16:22:43 王的嘴脸和我认识一男的真是一模一样
5257270018 困困桃乐丝 你也喜欢看星星吗 Jun-15-16:01:45 这是什么弱智发言很难相信不是伪造的哼
5067719289 子雅小雅MM 我的宝贝都要好好的,红红火火!!!星途坦荡!!!Jun-15-16:05:26 不懂就问左边真的是还是改的网名
1948404284 ·王一招财进宝· 健康平安最重要!!!Jun-15-16:01:58 校长宁可跟网红撕也不愿意看一眼的悲伤悲伤悲伤我極药丸
3626916467 不知道叫什么呀略略略 略略略 Jun-15-16:14:02 你别找茬哈哈哈哈哈哈哈笑死
6441562826 四川话推广大使 爱说啥说啥 别来看你爹 Jun-15-16:02:03 这是和谁的聊天记录啊
6553059545 一盆小蠢猫 ヾ(*Ő౪Ő*)少女心的避难所&好好生活🐯 Jun-15-16:04:03 笑死看得出来舔而不得恼羞成怒了
5663066697 熱衷於農 🈚 粉籍 别来犯贱 Jun-15-16:01:08 真的很好笑哈哈哈哈哈
5157145544 星下家的猫 下辈子一定要谈次恋爱 Jun-15-17:15:18 没想到真的是王思聪原来这么有钱也只配当舔狗啊
'''
https://m.weibo.cn/comments/hotflow?id=4648381753067388&mid=4648381753067388&max_id_type=0
id: 4648381753067388
mid: 4648381753067388
max_id_type: 0
https://m.weibo.cn/comments/hotflow?id=4648381753067388&mid=4648381753067388&max_id=142700600108756&max_id_type=0
id: 4648381753067388
mid: 4648381753067388
max_id: 142700600108756
max_id_type: 0
https://m.weibo.cn/comments/hotflow?id=4648381753067388&mid=4648381753067388&max_id=139402070360589&max_id_type=0
id: 4648381753067388
mid: 4648381753067388
max_id: 139402070360589
max_id_type: 0
https://m.weibo.cn/comments/hotflow?id=4648381753067388&mid=4648381753067388&max_id=139264625576517&max_id_type=0
id: 4648381753067388
mid: 4648381753067388
max_id: 139264625576517
max_id_type: 0
https://m.weibo.cn/comments/hotflow?id=4648381753067388&mid=4648381753067388&max_id=139264625135744&max_id_type=0
id: 4648381753067388
mid: 4648381753067388
max_id: 139264625135744
max_id_type: 0
https://m.weibo.cn/comments/hotflow?id=4648381753067388&mid=4648381753067388&max_id=138577438675032&max_id_type=0
id: 4648381753067388
mid: 4648381753067388
max_id: 138577438675032
max_id_type: 0
max_id = data['data']['max_id']
print('max_id:', max_id)
next_url = f'https://m.weibo.cn/comments/hotflow?id=4648381753067388&mid=4648381753067388&max_id={max_id}&max_id_type=0'
print(next_url)
'''
max_id 1: 142700600108756
https://m.weibo.cn/comments/hotflow?id=4648381753067388&mid=4648381753067388&max_id=142700600108756&max_id_type=0
'''
总结