Python打开多个URL连接 - urllib2
我正在尝试创建一个Python脚本,目的是让我能够同时打开多个连接,就像在浏览器中打开多个标签页一样。更具体地说,我有这样的代码:
https://github.com/eWizardII/SOC357-Twitter-Facebook-Project/blob/master/chuck.py
我使用urlv等工具,加载多个API连接,但我想让这5个连接能够同时调用,而不是一个接一个地调用。我查过像twisted和tidy这样的东西,但我不知道怎么用它们来帮助我。
谢谢,
所罗门
3 个回答
0
你可以使用threading这个库。这个库特别适合用来处理多线程的事情。
4
使用命令行。
#!/bin/bash
python chuck.py "request 1" &
python chuck.py "request 2" &
python chuck.py "request 3" &
python chuck.py "request 4" &
python chuck.py "request 5" &
这样会同时运行你程序的5个副本。它会尽可能地占用多个核心和CPU。而且——额外好处——你不需要用到子进程、线程或其他复杂的编程。
如果这5个副本需要做不同的事情,那你就得提供一些参数或选项。可以看看 argparse
,它可以帮助你收集命令行参数。
1
你可以创建HttpHandlers来处理异步的http请求(这里的异步是指在你的代码中,而不是指实际的网络操作)。
试试这个:
import urllib2
class MyHttpHandler(urllib2.HTTPHandler):
def http_response(self, request, response):
for l in response:
print l
return response
u = urllib2.build_opener(MyHttpHandler())
for i in range(1, 5):
u.open('http://stackoverflow.com')