关键词文章采集器( Python爬取指定关键词的微博相关资料展开详细内容,需要的朋友)
优采云 发布时间: 2021-11-16 14:08Python爬取指定关键词的微博相关资料展开详细内容,需要的朋友)
使用Python抓取指定关键词的微博
更新时间:2021年11月16日10:10:57 作者:志斌
这个文章主要介绍使用Python抓取指定关键词的微博。下面文章重点是Python爬取指定关键词微博的相关信息展开详细介绍,有需要的朋友可以参考
内容
前几天,学校老师在做微博舆情分析,让我帮她搭建一个爬虫,用关键词爬微博。另外,最近有不少读者咨询了知斌的微博爬虫。今天,志斌就来跟大家聊一聊。分享。
一、分析页面
我们这次选择的是从移动端抓取微博。移动端的反爬虫是信息验证反爬虫的cookie反爬虫,所以我们首先需要登录获取cookie。
登录后,我们可以获得自己的cookies,然后我们会观察用户是如何搜索微博内容的。
我们通常在这个地方输入关键字来搜索微博。
我在开发者模式下观察这个页面,发现每次发起一个关键字的请求,都会返回一个XHR响应。
现在我们已经找到了数据实际存在的页面,我们就可以进行爬虫的正常运行了。
二、数据采集
上面我们已经找到了真实的网页存放数据的地方,现在我们只需要向网页发出请求,然后提取数据即可。
1、发起请求
通过观察请求头,我们不难构建请求代码。
代码显示如下:
key = input("请输入爬取关键字:")
for page in range(1,10):
params = (
('containerid', f'100103type=1&q={key}'),
('page_type', 'searchall'),
('page', str(page)),
)
response = requests.get('https://m.weibo.cn/api/container/getIndex', headers=headers, params=params)
2、提取数据
从上面的观察,我们发现这个数据可以转换成字典进行爬取,但是经过我的实际测试,我发现用正则提取是最简单方便的,所以这里展示正则提取的方法,有兴趣的读者可以尝试一下。提取数据的字典方法。
代码显示如下:
r = response.text
title = re.findall('"page_title":"(.*?)"',r)
comments_count = re.findall('"comments_count":(.*?),',r)
attitudes_count = re.findall('"attitudes_count":(.*?),',r)
for i in range(len(title)):
print(eval(f"'{title[i]}'"),comments_count[i],attitudes_count[i])
有一个小问题需要注意。微博标题采用Unicode编码。如果直接抓取存储,会存储Unicode编码。感谢大佬——小明的帮助。志斌在网上搜了一下。许多解决方案都不成功。最后小明用一个简单的函数解决了。我真的很佩服!
解决方法:使用eval()输出标题,然后Unicode就可以转成中文了。
三、总结
1. 本文详细介绍了如何使用Python指定关键词抓取微博。有兴趣的读者可以尝试自己练习。
2. 本文仅供读者学习使用,不做其他用途!
使用Python爬取指定关键词文章的微博到此结束。更多指定关键词微博内容的Python爬取相关内容,请搜索脚本。首页文章或者继续浏览下面的相关文章,希望大家以后多多支持Script Home!