当前位置:首页 » 编程语言 » python爬取微博

python爬取微博

发布时间: 2023-05-20 17:59:39

㈠ 怎样用python爬新浪微博大V所有数据

先上结论,通过公开的api如果想爬到某大v的所有数据,需要满足以下两个条件:
1、在你的爬虫开始运行时,该大v的所有微博发布量没有超过回溯查询的上限,新浪是2000,twitter是3200。
2、爬虫程序必须不间断运行。
新浪微博的api基本完全照搬twitter,其中接口的参数特性与底层的Nosql密不可分,建议先看点Nosql数据库的设计理念有助于更好的理解api设计。
一般来说,如果决定爬某个大v,第一步先试获取该用户的基本信息,中间会包含一条最新的status,记下其中的id号作为基准,命名为baseId。
接口中最重要的两个参数:
since_id:返回ID比since_id大的微博(即比since_id时间晚的微博),默认为0。
max_id:返回ID小于或等于max_id的微博,默认为0。
出于各种原因,获取statuses的接口,固定为按id降序排列(scan_index_forward=false),即最新的statuses返回在前。假设该微博第一天上线,就一个用户,发了一百条,id是1到100。而你在该用户发了第50条的时候开始运行的爬虫,即baseId=50。
假设按每次获取10条历史数据递归,先将max_id设为baseId,获取该用户id为41-50的微博,再将max_id设为41重复循环,直到返回微博数量为1或0。这步没有问题。
获取用户最新的statuses就有些蛋疼了,since_id=50,同样获取10条数据,返回的并不是id值为51-60的数据,而是100-91的数据。简单说就是你没法从since_id逐步更新到用户当前status,而是得一口气从用户当前status更新到上次爬虫运行时得到的最后一条status。假设你的爬虫一个月才运行一次,该用户在这期间发了2300条微博,根据限制你只能更新2000条,这其中最老的300条在你的系统内就会出现“断档”。
最后一条,以上只针对公开的api,stackoverflow上twitter
API可以申请权限突破数量限制和更改排序机制,微博也应该有类似机制。

㈡ 怎样用python爬新浪微博大V所有数据

先上结论,通过公开的api如果想爬到某大v的所有数据,需要满足以下两个条件:

1、在你的爬虫开始运行时,该大v的所有微博发布量没有超过回溯查询的上限,新浪是2000,twitter是3200。
2、爬虫程序必须不间断运行。

新浪微博的api基本完全照搬twitter,其中接口的参数特性与底层的NoSQL密不可分,建议先看点Nosql数据库的设计理念有助于更好的理解api设计。

一般来说,如果决定爬某个大v,第一步先试获取该用户的基本信息,中间会包含一条最新的status,记下其中的id号作为基准,命名为baseId。

接口中最重要的两个参数:

since_id:返回ID比since_id大的微博(即比since_id时间晚的微博),默认为0。
max_id:返回ID小于或等于max_id的微博,默认为0。

出于各种原因,获取statuses的接口,固定为按id降序排列(scan_index_forward=false),即最新的statuses返回在前。假设该微博第一天上线,就一个用户,发了一百条,id是1到100。而你在该用户发了第50条的时候开始运行的爬虫,即baseId=50。

㈢ python爬虫:微博评论分析

最近王和李的离婚亮嫌轿闹得沸沸扬扬,相信大伙们都已经吃了不少的瓜。本文结合李的第一篇文章发文下面的网友们的评论来看看大家到底怎么看待这件事。

数据来自该地址: https://weibo.com/5977512966/L6w2sfDXb#comment

爬取的下面的全部评论:

微博的网页属于Ajax渲染,当我们向下滑动的时候会显示的评论,地址栏的URL不变,需要找到实际的请求URL。

1、右击【检查】,找到【Network】

2、确定每页的内容URL

这里是首页部分

滑动之后显示每页内容的URL;

3、每页的URL地址

从第二页开始的URL地址多的部分是max_id,刚好这个参数的值是前一页的返回内容:

4、介绍第一页的爬取

比如我们可以获取第一个用户的相关信息:

最终我们可以看到第一页爬取的数据展示:

参考上面的逻辑可以爬取到微博下面的全部评论

导入需要的库:

查看我们爬取到数据的基本信息,我们导入前5行数据:

基本信息:查看数据的shape形状,总共是47638行,8个字段,并且不存在缺失值。

将敬肆我们爬取到的格林威治形式的时间转成熟悉的标准化时间形式:

国内的省份中北京、广东、上海、江苏都是吃瓜的大省份!

果然:女性真的很爱吃瓜🍉远超男性

通过点赞数和回复数来看看这篇微博下的火爆评论:

有位网友的评论87万+的点赞数!666

同样还是这位网友的评论,回复数也是No.1

从点赞数和回复数的整体分布者棚来看,这条评论真的是别树一帜!已经完全偏离了其他的数据:

查看原数据我们发现这条评论就是:

看来以前的很多爆料都被锤啦!

通过用户的年龄和点赞数、回复数来看,用户年龄在7、8、9、10年时的用户更为活跃;年龄偏大或者新生的微博用户的评论较少。

同时点赞数也集中在2000-5000之间的部分

从用户的评论时间点来看,当李发了第一篇文之后,瞬间引爆了评论(左侧密集部分);这条微博沉寂了4天,没有想到23号的晚上又火了

将粉丝的评论内容分词找到他们的重点:

重点关注下前50个词语:

除了两位当事人, 粉丝还比较关心他们的孩子 。毕竟孩子是无辜的,但是他们的瓜不正是孩子引起的吗?个人的看法。

总之:不管是王还是李,如果真的是渣男或者渣女,请上十字架,阿门!

Python爬虫有一个非常厉害的框架Scrapy,我联系了北京大学出版社送两书:《Python网路爬虫框架Scrapy从入门到精通》。 精选两位走心留言的小伙伴

对Python爬虫感兴趣的朋友也可以直接购买喔。

㈣ 如何通过python调用新浪微博的API来爬取数据

1:安装python(这个不多说啦)
2:下载新浪微博SDK的python包,解压为weibopy目录

3:申请AppKey,

流程:

1:通过oAuth认证
按我的理解简化如下:
用户在新浪微博给的页面输入账号密码,然后微博给应用一个PIN码,这样应用通过PIN码才有权限访问该用户的信息,而应用在整个过程中是接触不到密码的,所以用户觉得很安全,后果很满意
2:获得认证之后,就可以使用微博SDK提供的API获得信息啦
3:如果想设计web或者客户端应用的话,那就继续加个GUI好啦(未完成)

代码:

#!/usr/bin/python

import webbrowser

from weibopy.auth import OAuthHandler
from weibopy.api import API

AppKey = '2525355147'
AppSecret = ''

my_auth = OAuthHandler(AppKey , AppSecret)
webbrowser.open(my_auth.get_authorization_url())
verifier = raw_input('PIN: ').strip()
my_auth.get_access_token(verifier)

my_api = API(my_auth)
for comment in my_api.mentions():
object = comment
id = object.__getattribute__("id")
text = object.__getattribute__("text")
print str(id) + " : " + text

热点内容
小鸟云如何去看客户服务器密码 发布:2025-05-20 07:58:51 浏览:897
怎么更改app的密码 发布:2025-05-20 07:54:32 浏览:784
汽车配置物品怎么处理 发布:2025-05-20 07:47:23 浏览:225
怎么修改华为wifi密码 发布:2025-05-20 07:45:12 浏览:41
php函数递归 发布:2025-05-20 07:39:36 浏览:781
登陆认证失败请检查服务器地址 发布:2025-05-20 07:06:55 浏览:831
无限分类实现php 发布:2025-05-20 06:57:40 浏览:681
数据结构c语言版严蔚敏李冬梅 发布:2025-05-20 06:55:05 浏览:449
iphone快捷访问 发布:2025-05-20 06:55:05 浏览:929
如何加密硬盘分区 发布:2025-05-20 06:52:29 浏览:363