关于python:如果尝试连接太长时间,如何关闭连接

How to close the connection if it try to connect too long time

本问题已经有最佳答案,请猛点这里访问。

我正在尝试编写程序,它将检查哪些代理是活动的。
当我的脚本尝试连接到无法正常工作的代理时,它甚至需要大约30秒。 当我检查数千个代理列表时,它会将脚本的工作时间增加几个小时。

当连接时间超过5秒时,是否可以破坏此功能。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
def get(url, proxy):
proxies = {
    'http': 'http://'+proxy,
    'https': 'https://'+proxy
}
s = requests.Session()
s.headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}
s.proxies = proxies
r = s.get(url)
return [r.status_code, r.reason, r.text]

with open('proxy.txt') as ips:
for ip in ips:
    ip = ip.split('
'
, 1)[0]
    try:
        get(url, ip)
        with open('working.txt', 'a') as the_file:
            the_file.write(ip+'
'
)
    except:
        print("error")

谢谢


timeout kwarg与s.get一起使用。s.get(url, timeout=5)