l*****c 发帖数: 1153 | 1 用urllib2.urlopen() dump网页,发觉速度很慢,比Firefox慢1-2个数量集。问一下问
题在哪里?有什么好的解决方案? |
r****t 发帖数: 10904 | 2 firefox 是个很大的软件了,你用 urllib2 没有任何 cache 的话,总的来说当然慢。
【在 l*****c 的大作中提到】 : 用urllib2.urlopen() dump网页,发觉速度很慢,比Firefox慢1-2个数量集。问一下问 : 题在哪里?有什么好的解决方案?
|
r****t 发帖数: 10904 | 3 bench 一下看看哪个部分花时间最多?
【在 l*****c 的大作中提到】 : 用urllib2.urlopen() dump网页,发觉速度很慢,比Firefox慢1-2个数量集。问一下问 : 题在哪里?有什么好的解决方案?
|
l*****c 发帖数: 1153 | 4 我这么写的
handle = urllib2.urlopen("http://www.google.com/")
doc = handle.read()
在handle.read()上很慢。昨天在家里特别慢,今天到公司试了试,快了一个数量级,
比firefox还是慢不少。
【在 r****t 的大作中提到】 : bench 一下看看哪个部分花时间最多?
|
l*****c 发帖数: 1153 | 5 有比较popular且比urllib2强大的库推荐么?
【在 r****t 的大作中提到】 : firefox 是个很大的软件了,你用 urllib2 没有任何 cache 的话,总的来说当然慢。
|
r****t 发帖数: 10904 | 6 你看中 performance 的话,可能用 pycurl 比较容易达到目标。
我没怎么用过,但是觉得 urllib2 灵活性很好,你可以轻松对付 cookie 这种东西。
因为 javascript 的原因我只用 selenium, 但是 firefox 3 支持还没发布。
http://pycurl.sourceforge.net/
【在 l*****c 的大作中提到】 : 有比较popular且比urllib2强大的库推荐么?
|
l*****c 发帖数: 1153 | 7 对performance没有要求那么高,不过是个LD要的小工具。不过现在是太慢了点。
。
【在 r****t 的大作中提到】 : 你看中 performance 的话,可能用 pycurl 比较容易达到目标。 : 我没怎么用过,但是觉得 urllib2 灵活性很好,你可以轻松对付 cookie 这种东西。 : 因为 javascript 的原因我只用 selenium, 但是 firefox 3 支持还没发布。 : http://pycurl.sourceforge.net/
|
r****t 发帖数: 10904 | 8 华蟒用户组上有人问一样的问题,还搞定了,但是从邮件里面看不出怎么搞定的。
如果 firefox 比速度,建议把 UserAgent fake 成和 Firefox 一样,这样 server 端
的 throttle 可以避开。
urllib2 也可以让 http stay live, 怎么搞就不知道了,应该不是瓶颈。
【在 l*****c 的大作中提到】 : 对performance没有要求那么高,不过是个LD要的小工具。不过现在是太慢了点。 : : 。
|
r****t 发帖数: 10904 | 9 仔细看了下邮件列表,和我说的一样,把 UserAgent fake 一下就行了。刚看到你问的时候把这个基本 trick 给忘了, 因为不 fake UserAgent,不仅仅可能慢,通常你根本抓不到网页就出错了,server 端一般禁止这些 UserAgent。如果你是知道 server 端没有特别处理就不用这么做了。
【在 r****t 的大作中提到】 : 华蟒用户组上有人问一样的问题,还搞定了,但是从邮件里面看不出怎么搞定的。 : 如果 firefox 比速度,建议把 UserAgent fake 成和 Firefox 一样,这样 server 端 : 的 throttle 可以避开。 : urllib2 也可以让 http stay live, 怎么搞就不知道了,应该不是瓶颈。
|