我有一个脚本,可以获取多个网页并解析信息.
(可以在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) 为了下载文件,我正在创建一个urlopen对象(urllib2类)并以块的形式读取它.
我想连接几次服务器并在六个不同的会话中下载文件.这样做,下载速度应该更快.许多下载管理器都具有此功能.
我想在每个会话中指定我想要下载的文件部分,并以某种方式同时处理所有会话.我不确定我怎么能做到这一点.
我尝试创建一个Python脚本,对多个站点执行查询.该脚本运行良好(我使用urllib2),但只是一个链接.对于多个站点,我一个接一个地发出多个请求,但它不是很强大.
什么是理想的解决方案(我猜的线程)并行运行多个查询并在查询返回特定字符串时停止其他查询?
我发现了这个问题,但我还没有找到如何更改它以停止剩余的线程......: Python urllib2.urlopen()很慢,需要更好的方法来读取几个网址
先感谢您 !
(对不起,如果我用英语犯错,我是法国人^^)