我的编程空间,编程开发者的网络收藏夹
学习永远不晚

用Python爬取指定关键词的微博

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

用Python爬取指定关键词的微博

前几天学校一个老师在做微博的舆情分析找我帮她搞一个用关键字爬取微博的爬虫,再加上最近很多读者问志斌微博爬虫的问题,今天志斌来跟大家分享一下。

一、分析页面

我们此次选择的是从移动端来对微博进行爬取。移动端的反爬就是信息校验反爬虫的cookie反爬虫,所以我们首先要登陆获取cookie

登陆过后我们就可以获取到自己的cookie了,然后我们来观察用户是如何搜索微博内容的。

平时我们都是在这个地方输入关键字,来进行搜索微博。

我通过在开发者模式下对这个页面观察发现,它每次对关键字发起请求后,就会返回一个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爬取指定关键词的微博内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

用Python爬取指定关键词的微博

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

爬虫实战 | 用Python爬取指定关键词的微博~

前几天学校一个老师在做微博的舆情分析找我帮她搞一个用关键字爬取微博的爬虫,再加上最近很多读者问志斌微博爬虫的问题,今天志斌来跟大家分享一下。

使用Python怎么爬取微博热搜关键词

今天就跟大家聊聊有关使用Python怎么爬取微博热搜关键词,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和
2023-06-14

Python 爬虫爬取指定博客的所有文章

自上一篇文章 Z Story : Using Django with GAE Python 后台抓取多个网站的页面全文 后,大体的进度如下: 1.增加了Cron: 用来告诉程序每隔30分钟 让一个task 醒来, 跑到指定的那几个博客上去爬
2022-06-04

使用python怎么爬取微博的热搜数据

使用python怎么爬取微博的热搜数据?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。主要用到requests和bf4两个库将获得的信息保存在d://hotsea
2023-06-06

教你用python3根据关键词爬取百度百科的内容

前言 关于python版本,我一开始看很多资料说python2比较好,因为很多库还不支持3,但是使用到现在为止觉得还是pythin3比较好用,因为编码什么的问题,觉得2还是没有3方便。而且在网上找到的2中的一些资料稍微改一下也还是可以用。
2022-06-04

node爬取微博的数据的简单封装库nodeweibo使用指南

一、前言 就在去年12月份,有个想法是使用node爬取微博的数据,于是简单的封装了一个nodeweibo这个库。时隔一年,没有怎么维护,中途也就将函数形式改成了配置文件。以前做的一些其他的项目也下线了,为了是更加专注前端 & node.js
2022-06-04

用Python爬取了8262条微博评论,终于知道今天的微博评论为什么太好哭了!

我发现热搜第一条是“今天的微博评论太好哭了“,它有263w+的热度。 于是志斌将这条微博下的评论,给全部爬取了下来,并做成词云图进行展示,看看网友们到底评论了什么,让人非常好哭!

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录