專 欄
❈
九茶,Python工程师,目前居于广州。Github知名开源爬虫QQSpider和SinaSpider作 者,经常会在CSDN上分享一些爬虫、数据等福利。爬过的网站有 QQ空间、新浪微博、Facebook、Twitter、WooYun、Github等。
CSDN:http://blog.csdn.net/bone_ace
Github:https://github.com/liuxingming
❈——
这次主要对爬虫的种子队列和去重策略作了优化,并更新了Cookie池的维护,只需拷贝代码即可实现爬虫分布式扩展,适合大规模抓取。 使用说明:
DOWNLOAD_DELAY = 10
和CONCURRENT_REQUESTS = 1
注释掉。另外可以修改存放种子和去重队列的机器,可以存放在两台不同的机器上面。scrapy crawl SinaSpider
(Linux只能采用后者)。FILTER_HOST
设成同一台机的IP。
代码说明:
注:本项目用代码提交请求进行登录,不会遇到验证码。但是有个情况:如果一次性获取几十个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: 首页链接