相关疑难解决方法(0)

如何在python中使用urllib2加速获取页面?

我有一个脚本,可以获取多个网页并解析信息.

(可以在http://bluedevilbooks.com/search/?DEPT=MATH&CLASS=103&SEC=01上看到一个例子)

我在它上面运行了cProfile,而且正如我所假设的那样,urlopen占用了大量的时间.有没有办法更快地获取页面?或者一种方法一次获取几个页面?我会做最简单的事情,因为我是python和web开发的新手.

提前致谢!:)

更新:我有一个调用的函数fetchURLs(),我用它来制作一个我需要的URL数组,如下所示urls = fetchURLS().这些URL是来自亚马逊和eBay API的所有XML文件(这让我很困惑,为什么加载需要这么长时间,也许我的虚拟主机很慢?)

我需要做的是加载每个URL,读取每个页面,并将该数据发送到脚本的另一部分,该部分将解析和显示数据.

请注意,在获取所有页面之前,我无法执行后一部分,这就是我的问题所在.

另外,我相信我的主机一次限制我25个进程,所以服务器上最简单的任何东西都会很好:)


这是时间:

Sun Aug 15 20:51:22 2010    prof

         211352 function calls (209292 primitive calls) in 22.254 CPU seconds

   Ordered by: internal time
   List reduced from 404 to 10 due to restriction <10>

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
       10   18.056    1.806   18.056    1.806 {_socket.getaddrinfo}
     4991    2.730    0.001    2.730    0.001 {method 'recv' of '_socket.socket' objects}
       10    0.490    0.049    0.490    0.049 {method 'connect' of '_socket.socket' objects} …
Run Code Online (Sandbox Code Playgroud)

python time urllib2 cprofile urlopen

27
推荐指数
3
解决办法
2万
查看次数

并行获取文件

为了下载文件,我正在创建一个urlopen对象(urllib2类)并以块的形式读取它.

我想连接几次服务器并在六个不同的会话中下载文件.这样做,下载速度应该更快.许多下载管理器都具有此功能.

我想在每个会话中指定我想要下载的文件部分,并以某种方式同时处理所有会话.我不确定我怎么能做到这一点.

python asynchronous http urllib urllib2

6
推荐指数
2
解决办法
9921
查看次数

Python:并行运行多个查询并获得第一个完成

我尝试创建一个Python脚本,对多个站点执行查询.该脚本运行良好(我使用urllib2),但只是一个链接.对于多个站点,我一个接一个地发出多个请求,但它不是很强大.

什么是理想的解决方案(我猜的线程)并行运行多个查询并在查询返回特定字符串时停止其他查询?

我发现了这个问题,但我还没有找到如何更改它以停止剩余的线程......: Python urllib2.urlopen()很慢,需要更好的方法来读取几个网址

先感谢您 !

(对不起,如果我用英语犯错,我是法国人^^)

python multithreading urllib2

5
推荐指数
1
解决办法
1603
查看次数