如何采集大众点评网的千万数据?它有严格的反爬虫措施

2014-01-03 09:38:56 +08:00
 pc10201
没事研究采集,准备拿大众点评网练手
形式如下
http://www.dianping.com/shop/6000000/
http://www.dianping.com/shop/6000001/

shop后面的ID是连续的,范围是1-1500万,当然有许多店铺是不存在的(404错误),实际的店铺数量在700万左右,这里是用的穷举法,当然也可以进入网页按深度索引

遇到一个很严重的问题,就是点评网被爱帮网采集后采取了严格的反爬虫措施。
严格到什么程序,如果一个IP一秒一个进行采集,大概采集500-1000个左右就会出现403错误,IP被冻结了,一段时间后才解封,如果冻结了你不死心,继续大量采,就永久冻结了。

有人可能会说,用代理啊,我测试了淘宝许多家的好多代理,库存号称3000-5000个代理IP,一秒钟内能连接上也就200-800个,还有部分是透明代理。
如果用代理IP,从哪找那么多高质量的代理IP啊?
46293 次点击
所在节点    Python
55 条回复
robinshi2010
2014-01-03 10:07:30 +08:00
顶一下。这个问题也好奇。坐等明白人回复。
jtacm
2014-01-03 10:10:55 +08:00
有一个思路,反编译大众点评的andriod客户端,看andriod客户端用什么协议去读取数据的,模仿之。
Mr2
2014-01-03 10:12:54 +08:00
@jtacm 客户端不是一个IP也没有短时间访问大量商店页面吧
pirex
2014-01-03 10:15:47 +08:00
你可以先采集IP地址来练手
Ever
2014-01-03 10:17:41 +08:00
去应聘dianping DBA.
kchum
2014-01-03 10:33:51 +08:00
@Ever 好方法,哈哈。
est
2014-01-03 10:42:06 +08:00
@Ever
@kchum

去应聘dianping机房网管可能更快。
wtl
2014-01-03 10:43:19 +08:00
每次被封之后 断开adsl 重新拨号
xdeng
2014-01-03 10:48:38 +08:00
@jtacm 抓包就可以了吧 还反编译?
Lelouchcr
2014-01-03 10:49:29 +08:00
试试看用goagent来做代理~
goagent每次发出的请求的地址是不确定的
noahzh
2014-01-03 10:50:37 +08:00
用一个可以自动切换ip 的路由,大年见过大神用一台笔记本加自动切换ip的路由,用erlang写的程序把大众点评数据全都跑下来了,大众点评还内部开会讨论这个问题了....
chens
2014-01-03 10:50:44 +08:00
可以去抓site:www.dianping.com
pc10201
2014-01-03 10:58:00 +08:00
@xdeng 我研究了一下大众点评的anroid客户端,是基于HTTP协议的,但采用了某种特殊的流量压缩技术,用普通的抓包软件查看都是乱码~
suckli
2014-01-03 11:23:00 +08:00
修改ip包头的源地址~
yushiro
2014-01-03 11:23:35 +08:00
曾经采集过, 1秒1个还是太频繁, 我记得当时是1~5秒随机延迟进行采集的, 不过我采集量不大, 也就采集了10w家店铺。
allenforrest
2014-01-03 12:09:09 +08:00
@pc10201 居然不是 https 的?
arron
2014-01-03 12:09:47 +08:00
大多数路由器也就一个http请求就可以重连的,然后定时去重连。 一般20秒就重连换ip了。 这样会慢点儿, 我记得两年前这么采了dianping 80万数据的样子, 1~2天时间吧。
上面看你那几百个代理已经够用了,采集一轮,第二轮又可以使了。 点评又没限制一天你一个ip的采集数量。也可以每次换着ip采集,这样同一ip的采集间隔时间就很长了。
arron
2014-01-03 12:12:42 +08:00
另外两三年前,我记得点评的店铺我基本都采集了,估摸着漏掉的加起来也就100万数据。
Livid
2014-01-03 12:17:56 +08:00
我真的不明白为什么要研究这方面的技术,你不可能靠采集来的数据做一个比点评更好的网站。
tokki
2014-01-03 12:23:25 +08:00
中国人力很便宜

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

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

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

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

© 2021 V2EX