新浪微群爬虫/微博爬虫 附带用户关系爬虫

2014-05-05 13:41:07 +08:00
 davidlau
毕业设计的一部分,注释详细,多线程增量式爬取,用到Python+SQLite。
如觉有用请Star,谢谢!
https://github.com/liuslevis/weiquncrawler
4146 次点击
所在节点    Python
9 条回复
aisensiy
2014-05-05 14:13:36 +08:00
wap 也有反爬虫机制的吧,我抓了2000页的微博就不能抓了,要过些时候才可以,楼主有什么办法么
Linxing
2014-05-05 15:39:33 +08:00
@aisensiy 可以学习下大胆晒的爬虫,用 http://www.samair.ru/proxy-by-country/China-01.htm 上面的代理
dong3580
2014-05-05 15:54:35 +08:00
@aisensiy
模拟浏览器登录行为,一定要补全所有的user-agent,并且,不要一直爬,多线程速度太快了,容易被封ip,可以选择性的使用单线程,另外加个时间间隔,每爬固定页数暂停几分钟。
aisensiy
2014-05-05 16:06:54 +08:00
@dong3580 我用的 scrapy 添加了每秒 10 个请求的限制~但似乎还是不可避免。
dong3580
2014-05-05 16:20:10 +08:00
@aisensiy
我用的C#爬。。。不过都是爬几个小时休1个小时,不然容易被封。而且只开一个线程,太多线程电脑没法看网页了。
你算算每秒10个请求,假设成功,也就是10个页面,假设一个页面100K,10个就是1000K,一分钟就是1000x60=60 000K,大约60M,一小时就是 60x60=3600M,大约3.6G,这还不算其他人,就你一个人每小时需要下载微博上纯html 数据3.6G,你让人家服务器饶你么,直接关你到小黑屋。
aisensiy
2014-05-05 17:25:49 +08:00
@dong3580 嗯 我算过 我其实是侥幸心理 我想关掉所有限制 然后在很短时间内把东西抓完...因为我是那种一次性工作,不需要持续抓取 T_T
davidlau
2014-05-05 21:25:23 +08:00
@aisensiy
a)一般20分钟被block,(程序给予提示,自动停止), 手动切代理换IP 用goagent
b)换完IP后 马上爬某些页面(尤其是总N页的中间部分N/2)会失效,猜测一个新的用户突然频繁访问中间的几页概率小,所以Block。这种情况随机慢速顺序N/2附近部分页面,模仿正常用户访问;直到有有效页面返回,再从N/2开始爬。
c)再不行,去喝杯茶 40Min后回来继续
d)在不行,2h后回来

熟悉这个pattern,并且有大量IP代理,可以用自定义脚本操纵爬虫爬取
pyshift
2014-05-05 23:28:04 +08:00
巧了。爬虫这么受欢迎,都选这个做毕设吗。我这边用的python/java+mysql的,因为想多了解下python就用python也写了一份,程序大同小异。但是我的单线程,而且爬取的手动加参数约束下。要不太快被封好蛋疼。
davidlau
2014-05-07 11:00:51 +08:00
@pyshift 用它来学习python、数据库、网络知识,是不错的选择

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/111201

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX