Python打开多个URL连接 - urllib2

1 投票
3 回答
3363 浏览
提问于 2025-04-16 07:59

我正在尝试创建一个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')

撰写回答