1
Asimov 2013-02-23 17:06:19 +08:00 1
1。用 Requests
2。爬慢点,鸡东有防爬 |
3
hfeeki 2013-02-23 19:00:23 +08:00
有几个错误算啥?像爬虫这样的应用应该要写很多的预防代码,就是处理各种异常、出错的情况,可能会达到65%甚至更多(80-90),要有心理准备。
具体复杂性还要看看京东自己的代码质量,是否有进行自动化测试,京东代码质量高(机器可读性好,比较少的特殊处理代码),你的代码就会简单,反之,如果京东的代码质量差(主要是各种各样进行特殊处理的代码),会导致你根本没法使用很简单的代码去爬他们的网页。 |
4
muzuiget 2013-02-23 19:24:53 +08:00 1
我写过,不过属于玩票性质,现在代码已经失效了。京东是开启 gzip 压缩的,也就是你用 urllib2.open(url).read() 读取出来数据其实是 gzip 的压缩数据,所以你怎么检测编码也是失败,你要自己解压,嫌麻烦就直接用 requests 好了,这个库会自动判断是否开启了 gzip 压缩并替你解压,你读取的就是 html 了。京东的 html 用的是 GBK 编码。
|
7
hfeeki 2013-02-23 20:52:42 +08:00 1
I just talking about my experiences on write a good web crawler. You need to hanle any excepiton or errors, note: it is ANY. Because when writing a web crawler, you must handle all of unexpected problems.
|
8
qiao 2013-02-23 21:13:37 +08:00 1
呃,我连 requests 都嫌麻烦,直接上 scrapy 吧。
|
11
leebo 2013-02-25 21:36:17 +08:00
ruby 写采集感觉比较简单 open-uri + nokogiri 感觉很爽
|
13
vigoss 2013-02-25 23:02:02 +08:00
我一看就知道多半是gzip..
|