Requests报”requests.exceptions.InvalidProxyURL: Invalid proxy URL {url} “的原因以及解决办法

  • Post category:Python

问题原因:
当使用Requests执行请求时,如果使用的代理URL格式不正确,就会报错:”requests.exceptions.InvalidProxyURL: Invalid proxy URL {url}”。

解决办法:
1. 检查代理URL格式是否正确:代理URL应该以”http://”或”https://”开头,如果不是,就需要加上对应的协议头。
2. 如果代理URL中包含特殊字符,比如“@”、“%”、“:”等,需要进行urlencode编码,在代理URL中替换掉这些特殊字符。
3. 检查代理URL是否有效:可以在浏览器中输入代理URL查看是否可以访问到。
4. 如果使用的是HTTP代理,需要指定协议头,如下所示:

import requests

proxies = {
    'http': 'http://your_proxy_url',
    'https': 'http://your_proxy_url'
}

response = requests.get('http://www.example.com', proxies=proxies)

如果使用的是SOCKS协议的代理,需要安装requests[socks]库,并指定协议头,如下所示:

import requests

proxies = {
    'http': 'socks5://your_proxy_url',
    'https': 'socks5://your_proxy_url'
}

response = requests.get('http://www.example.com', proxies=proxies)
  1. 如果以上方法均无法解决问题,可以尝试使用其他代理URL进行测试,看是否可以正常工作。

总结:
以上就是解决Requests报”requests.exceptions.InvalidProxyURL: Invalid proxy URL {url}”的方法。在使用Requests进行爬虫开发时,代理是一个很重要的配置项,开发者需要仔细操作,以确保代理的正确性。