执行get请求时报错
import requests
url = "https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fa2.att.hudong.com%2F50%2F70%2F50200009239445156156701777351.jpg&refer=http%3A%2F%2Fa2.att.hudong.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1640508539&t=401ddae015b63aaee2608b838f4707a6"
r = requests.get(url)
data = r.content
with open('1.jpg','wb') as f:
f.write(data)
报错结果:
ProxyError: HTTPSConnectionPool(host='gimg2.baidu.com', port=443): Max retries exceeded with url: /image_search/src=http%3A%2F%2Fa2.att.hudong.com%2F50%2F70%2F50200009239445156156701777351.jpg&refer=http%3A%2F%2Fa2.att.hudong.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1640508539&t=401ddae015b63aaee2608b838f4707a6 (Caused by ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 407 authenticationrequired')))
这个有两种可能:.http连接太多没有关闭导致的、、、访问次数频繁,被禁止访问
1.http连接太多没有关闭导致的,解决方法:
import requests
requests.adapters.DEFAULT_RETRIES = 5 # 增加重连次数
s = requests.session()
s.keep_alive = False # 关闭多余连接
s.get(url) # 你需要的网址
2.访问次数频繁,被禁止访问,解决方法:使用代理
import requests
s = requests.session()
url = "https://mail.163.com/"
s.proxies = {"https": "47.100.104.247:8080", "http": "36.248.10.47:8080", }
s.headers = header
s.get(url)