新浪微博API

下面是通过登录App_key和App_secret方式访问微博API的代码,代码是基于py2的。py3对weibo模块使用存在一定问题。

这篇文章分享之前我还是要推荐下我自己的python学习交流群:330637182,不管你是小白还是大牛,小编我都挺欢迎,不定期分享干货,包括我自己整理的一份2017最新的Python资料和零基础入门教程,欢迎初学和进阶中的小伙伴。

知道如何登录API了,辣么如何调用API爬单条微博的评论呢?一行代码搞定。

所有关于单条微博的评论信息都在r.comments中了,这里需要对照微博API文档,微博API有声明调用微博评论API需要获取用户授权,但是捏,只要知道单条微博的id,就可以调用这个API了,关于单条微博的id如何获取在后面会说(小声一点,千万别让微博知道,万一封了呢)。

按照client.接口名.get(请求参数)的方式获取API,获取API后的规格可在接口详情中查看,文档中有给出返回结果的示例。

文档中也给出了关键数据的json接口名称。

如果我们要获取微博评论的内容,只需要调用text接口即可。

微博爬虫

通过调用新浪微博API的方式,我们就可以简单获取单条微博的评论信息了,为啥说简单呢,因为人红信息贵啊!你以为大V的微博就这么免费的给你API调用了吗,非认证应用开发者单日只能请求几千次API,这对像老薛这样单条微博几十万评论的大V来说…太少了(TT)

所以捏,还是要写微博爬虫。

正所谓,知己知彼百战不殆,新浪作为大厂,怎么说也是身经百战,必定是经历了无数场爬虫与反爬之间的战争,必然有着健全的反爬策略。正所谓,强敌面前,绕道而行,有位大佬说得好,爬网站,先爬移动端

';id=' + 单条微博id + '&type=comment&hot=1&page=' + 页码

最新评论的变化规律是:

'; + 单条微博id + '&page=' + 页码

接下来就是套路了,伪装浏览器header,读取json文件,遍历每一页…这都不是重点!而且这些我以前都讲过~直接上代码~这里开始是py3的代码了~

这里有几点说明:

1.设置爬取间隔时间之后,微博爬虫被禁的概率降低了很多(特别是晚上)

2.新浪每次返回的json数据条数随机,所以翻页之后会出现数据重复的情况,所以用到了数据去重,这会在后面说。

3.在text和source中添加了去除emoji表情的代码(折腾了很久写不进数据库,差点就从删库到跑路了/(ㄒoㄒ)/),同时也去除了掺杂其中的回复他人的html代码。

4.我只写了读取数据,没有写如何保存,因为我们要用到数!据!库!辣!(这是重点!敲黑板)

python中数据库的读取与写入

根据上面的代码,在navicat中创建数据库、表和域以及域的格式。在Python程序中添加代码。

conn =(host='服务器IP(默认是127.0.0.1)',user='服务器名(默认是root)',password='服务器密码',charset="utf8",use_unicode = False) #连接服务器

cur = conn.cursor()

sql = "insert into xue.xueresponse(comment_id,user_name,created_at,text,likenum,source) values(%s,%s,%s,%s,%s,%s)" #格式是:数据名.表名(域名)

param = (comment_id,user_name,created_at,text,likenum,source)

try:

A = cur.execute(sql,param)

conn.commit()

except Exception as e:

print(e)

conn.rollback()

运行python程序,大概爬了2w条实时评论,新浪微博的反爬还是很强大的,有俩个解决方法:更换IP和切换账号,IP代理的使用方法我以前有写过,账号可以在X宝购买

分析结果

经过处理得到的情感值列表进行统计,并生成分布图。下图数据采集时间9月27日19时,采集评论2w条

薛之谦回应P图事件微博评论情感值分布

爬了李雨桐将网友转账捐款的微博的2w条评论。

李雨桐将网友转账捐款微博评论情感值分布

1.《如何使用微博api 如何使用微博推广?》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《如何使用微博api 如何使用微博推广?》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/3257588.html