15158846557 在线咨询 在线咨询
15158846557 在线咨询
所在位置: 首页 > 营销资讯 > 网站运营 > 新浪微博爬虫分享(2016年12月01日更新)

新浪微博爬虫分享(2016年12月01日更新)

时间:2023-05-13 19:51:01 | 来源:网站运营

时间:2023-05-13 19:51:01 来源:网站运营

新浪微博爬虫分享(2016年12月01日更新):

前言:

上篇文章:

《新浪微博爬虫分享(一天可抓取 1300 万条数据)》、

《新浪微博分布式爬虫分享》
Github地址:

SinaSpider
Q群讨论:537549079

更新完

《QQ空间爬虫分享(2016年11月18日更新)》,现在将新浪微博爬虫的代码也更新一下吧。

这次主要对爬虫的种子队列和去重策略作了优化,并更新了Cookie池的维护,只需拷贝代码即可实现爬虫分布式扩展,适合大规模抓取。

使用说明:

  1. 需要安装的软件:Python2、Redis、MongoDB; 需要安装的Python模块:scrapy、requests、lxml。
  2. 进入cookies.py,填入你的微博账号(已有两个账号示例)。
  3. 进入settings.py,如果你填入的账号足够多,可以将`DOWNLOAD_DELAY = 10` 和 `CONCURRENT_REQUESTS = 1`注释掉。另外可以修改存放种子和去重队列的机器,可以存放在两台不同的机器上面。
  4. 运行launch.py启动爬虫,也可在命令行执行`scrapy crawl SinaSpider`(Linux只能采用后者)。
  5. 分布式扩展:将代码拷贝到一台新机器上,运行即可。注意各子爬虫要共用一个去重队列,即将settings.py里面的`FILTER_HOST`设成同一台机的IP。


代码说明:

  1. 爬虫基于scrapy+redis架构进行开发、优化。
  2. 爬虫支持断点续爬。
  3. 非常简易地,便可实现分布式扩展。
  4. 使用Redis的“位”进行去重,1G的内存可满足80亿个用户ID的瞬间去重。
  5. 将种子优化到不足40个字符,大大降低了Redis的内存消耗,也提高了各子爬虫从Redis取种子的速度。

注:本项目用代码提交请求进行登录,不会遇到验证码。但是有个情况:如果一次性获取几十个Cookie,新浪会检测到你的IP异常(大约多久会被检测出来?以前是一分钟左右,现在好像几十秒,我们就用这几十秒登陆完所有账号,放心 代码登录很快的),大约十个小时后会给你的IP恢复正常。IP被检测为异常会怎样?不会影响爬虫的抓取,只是你再登录账号时会被要求输入验证码,日志如:

[Sina_spider3.cookies] WARNING: Failed!( Reason:为了您的帐号安全,请输入验证码 )如果我的账号还没登录完就出现这种情况怎么办?可以先将爬虫停了,机器换个IP继续获取Cookie,放心 已获取到Cookie的账号会自动跳过。当然如果你不喜欢受这个限制,可以用打码平台或着自己写个程序把验证码搞定。其实只是第一次启动爬虫才是需要获取那么多Cookie,之后只有等哪个Cookie失效了才会去更新。



数据说明:

用户发表的微博:

_id : 用户ID-微博ID ID : 用户ID Content : 微博内容 PubTime : 发表时间 Co_oridinates : 定位坐标 Tools : 发表工具/平台 Like : 点赞数 Comment : 评论数 Transfer : 转载数
用户的个人信息:

_id: 用户ID NickName: 昵称 Gender: 性别 Province: 所在省 City: 所在城市 BriefIntroduction: 简介 Birthday: 生日 Num_Tweets: 微博数 Num_Follows: 关注数 Num_Fans: 粉丝数 SexOrientation: 性取向 Sentiment: 感情状况 VIPlevel: 会员等级 Authentication: 认证 URL: 首页链接转载请注明出处,谢谢!(原文链接:

http://blog.csdn.net/bone_ace/article/details/53379904

关键词:更新,爬虫

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭