我的代码如下:
# -*- coding: utf-8 -*-
import requests
proxy = "27.42.168.46:48919"
proxies = {
'http': 'http://' + proxy,
'https': 'https://' + proxy,
}
User_Agent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3"
headers = {'User-Agent': User_Agent}
try:
print("headers",headers)
print("proxies",proxies)
response = requests.get(
"http://httpbin.org/get",
proxies=proxies,
headers=headers,
timeout=5
)
print(response.text)
except requests.exceptions.ConnectionError as e:
print('Error', e.args)
语法什么的没有任何错误,跟我之前的一个爬虫也差不多,就是 headers 和代理地址(proxy )不一样
但是就是报错, [WinError 10061] 由于目标计算机积极拒绝,无法连接。
或者报这个错:
(Error (MaxRetryError("此处省略): Max retries exceeded with url: 此处省略, 'Connection to 119.101.112.9 timed out. (connect timeout=5)'))"),))
然后我换了一个 proxy (代理) 为: 119.101.112.9:9999 然后就 又正常了.
究其原因,是西刺上很多的代理 IP 都不是即时可用的 (在IP的最后一列西刺自己同样也有验证时间)
验证时间越近,IP 可用可能性越大,所以 只有西刺第一页可用的多一些
而且 代理 IP又分 HTTP 和 HTTPS 类型,HTTP 只能 访问 HTTP网站不出错,HTTPS同理
(http 和 https 处理请求的方式不同)