前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >新浪微博爬虫最新分享

新浪微博爬虫最新分享

作者头像
Python中文社区
发布2018-01-31 14:52:18
9360
发布2018-01-31 14:52:18
举报
文章被收录于专栏:Python中文社区Python中文社区

專 欄

九茶,Python工程师,目前居于广州。Github知名开源爬虫QQSpiderSinaSpider作 者,经常会在CSDN上分享一些爬虫、数据等福利。爬过的网站有 QQ空间、新浪微博、Facebook、Twitter、WooYun、Github等。

CSDN:http://blog.csdn.net/bone_ace

Github:https://github.com/liuxingming

——

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

  1. 需要安装的软件:Python2、Redis、MongoDB; 需要安装的Python模块:scrapy、requests、lxml。
  2. 进入cookies.py,填入你的微博账号(已有两个账号示例)。
  3. 进入settings.py,如果你填入的账号足够多,可以将DOWNLOAD_DELAY = 10CONCURRENT_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取种子的速度。
  6. 维护了一个Cookie池,各子机器共用一个Cookie池,断点续爬不会重复获取Cookie,当某个Cookie失效时会自动更新。

注:本项目用代码提交请求进行登录,不会遇到验证码。但是有个情况:如果一次性获取几十个Cookie,新浪会检测到你的IP异常(大约多久会被检测出来?以前是一分钟左右,现在好像几十秒,我们就用这几十秒登陆完所有账号,放心 代码登录很快的),大约十个小时后会给你的IP恢复正常。IP被检测为异常会怎样?不会影响爬虫的抓取,只是你再登录账号时会被要求输入验证码,日志如[Sina_spider3.cookies] WARNING: Failed!( Reason:为了您的帐号安全,请输入验证码 )。 如果我的账号还没登录完就出现这种情况怎么办?可以先将爬虫停了,机器换个IP继续获取Cookie,放心 已获取到Cookie的账号会自动跳过。当然如果你不喜欢受这个限制,可以用打码平台或着自己写个程序把验证码搞定。其实只是第一次启动爬虫才是需要获取那么多Cookie,之后只有等哪个Cookie失效了才会去更新。

数据说明:

用户发表的微博:

代码语言:javascript
复制
_id :  用户ID-微博ID
ID :  用户ID
Content :  微博内容
PubTime :  发表时间
Co_oridinates :  定位坐标
Tools :  发表工具/平台
Like :  点赞数
Comment :  评论数
Transfer :  转载数

用户的个人信息:

代码语言:javascript
复制
_id: 用户ID
NickName: 昵称
Gender: 性别
Province: 所在省
City: 所在城市
BriefIntroduction: 简介
Birthday: 生日
Num_Tweets: 微博数
Num_Follows: 关注数
Num_Fans: 粉丝数
SexOrientation: 性取向
Sentiment: 感情状况
VIPlevel: 会员等级
Authentication: 认证
URL: 首页链接
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-12-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python中文社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档