1
aisensiy 2014-05-05 14:13:36 +08:00
wap 也有反爬虫机制的吧,我抓了2000页的微博就不能抓了,要过些时候才可以,楼主有什么办法么
|
2
Linxing 2014-05-05 15:39:33 +08:00 1
@aisensiy 可以学习下大胆晒的爬虫,用 http://www.samair.ru/proxy-by-country/China-01.htm 上面的代理
|
3
dong3580 2014-05-05 15:54:35 +08:00
@aisensiy
模拟浏览器登录行为,一定要补全所有的user-agent,并且,不要一直爬,多线程速度太快了,容易被封ip,可以选择性的使用单线程,另外加个时间间隔,每爬固定页数暂停几分钟。 |
5
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,你让人家服务器饶你么,直接关你到小黑屋。 |
6
aisensiy 2014-05-05 17:25:49 +08:00
@dong3580 嗯 我算过 我其实是侥幸心理 我想关掉所有限制 然后在很短时间内把东西抓完...因为我是那种一次性工作,不需要持续抓取 T_T
|
7
davidlau OP @aisensiy
a)一般20分钟被block,(程序给予提示,自动停止), 手动切代理换IP 用goagent b)换完IP后 马上爬某些页面(尤其是总N页的中间部分N/2)会失效,猜测一个新的用户突然频繁访问中间的几页概率小,所以Block。这种情况随机慢速顺序N/2附近部分页面,模仿正常用户访问;直到有有效页面返回,再从N/2开始爬。 c)再不行,去喝杯茶 40Min后回来继续 d)在不行,2h后回来 熟悉这个pattern,并且有大量IP代理,可以用自定义脚本操纵爬虫爬取 |
8
pyshift 2014-05-05 23:28:04 +08:00
巧了。爬虫这么受欢迎,都选这个做毕设吗。我这边用的python/java+mysql的,因为想多了解下python就用python也写了一份,程序大同小异。但是我的单线程,而且爬取的手动加参数约束下。要不太快被封好蛋疼。
|