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

  • Post category:Python

这个错误提示意味着传递给requests库的代理URL地址不合法,requests无法正确解析URL。下面是一些可能导致这个问题的原因和解决办法:

  1. 代理URL格式错误

检查传递给requests库的代理URL是否包含了HTTP或HTTPS协议的前缀,例如”http://proxy.example.com”或”https://proxy.example.com”。如果代理URL没有前缀,请在URL前面手动添加HTTP或HTTPS协议前缀。如果代理URL是带有端口的IP地址,请确保端口号正确且位于URL的尾部,例如”http://192.168.1.1:8080″。

示例代码:

import requests

proxies = {
  "http": "http://proxy.example.com",
  "https": "https://proxy.example.com"
}

response = requests.get("http://www.example.com", proxies=proxies)
  1. 代理URL中的转义字符

如果代理URL中包含了特殊字符,则需要对这些字符进行转义。例如,如果代理URL中包含了反斜杠字符“\”,则需要使用双反斜杠转义为“\”。如果代理URL中包含了“%”字符,则需要使用百分号转义为“%25”。

示例代码:

import requests

proxies = {
  "http": "http://username:password@proxy.example.com:8080",
  "https": "https://username:password@proxy.example.com:8080"
}

response = requests.get("http://www.example.com", proxies=proxies)
  1. 代理URL语法错误

如果代理URL语法存在错误,例如缺失冒号、缺失斜杠等,则需要检查代理URL是否符合标准的URL语法规则,并进行对应的修正。

示例代码:

import requests

proxy = "http://proxy.example.com:8080"

response = requests.get("http://www.example.com", proxies={"http": proxy})

综上所述,代理URL格式不正确、转义字符使用错误或代理URL语法错误可能导致”requests.exceptions.InvalidProxyURL”异常的出现。通过检查代理URL的格式、转义字符和语法,可以解决这个问题。