多个爬虫库使用代理IP

多个爬虫库使用代理IP_第1张图片

今天给大家分享的是 Urllib 的代理设置方法,下面是相关实现过程:

from urllib.error import URLError
import urllib.request
from urllib.request import ProxyHandler, build_opener

#获取IP
ip_response = urllib.request.urlopen(“http://localhost:5555/random”)
ip = ip_response.read().decode(‘utf-8’)

proxy_handler = ProxyHandler({
‘http’: ‘http://’ + ip,
‘https’: ‘https://’ + ip
})
opener = build_opener(proxy_handler)
try:
response = opener.open(‘http://httpbin.org/get’)
print(response.read().decode(‘utf-8’))
except URLError as e:
print(e.reason)

运行结果:

{
“args”: {},
“headers”: {
“Accept-Encoding”: “identity”,
“Host”: “httpbin.org”,
“User-Agent”: “Python-urllib/3.7”
},
“origin”: “108.61.201.231, 108.61.201.231”,
“url”: “https://httpbin.org/get”
}

Urllib 使用 ProxyHandler 设置代理,参数是字典类型,键名为协议类型,键值是代理,代理前面需要加上协议,即 http 或 https,当请求的链接是 http 协议的时候,它会调用 http 代理,当请求的链接是 https 协议的时候,它会调用https代理,所以此处生效的代理是:http://108.61.201.231 和 https://108.61.201.231

ProxyHandler 对象创建之后,再利用 build_opener() 方法传入该对象来创建一个 Opener,这样就相当于此 Opener 已经设置好代理了,直接调用它的 open() 方法即可使用此代理访问链接。

上述就是关于多个爬虫库使用代理IP的相关介绍了,希望能够给大家带来帮助。
文章转自:https://blog.csdn.net/weixin_44613063/article/details/102714671

你可能感兴趣的