关键词文章采集器( Python爬取指定关键词的微博相关资料展开详细内容,需要的朋友)

优采云 发布时间: 2021-11-16 14:08

  关键词文章采集器(

Python爬取指定关键词的微博相关资料展开详细内容,需要的朋友)

  使用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!

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线