Python3中-爬虫库Urllib
代理IP
1. urllib.request.ProxyHandler()
①代理IP的原理:本机---->大力IP---->访问的网站(服务器)
文字描述:本机先访问代理IP,再通过代理IP地址访问互联网,这样网站(服务器)接收到的访问IP就是代理IP地址。
②由Urllib提供urllib.request.ProxyHandler()方法可动态设置代理IP池,具体摘录如下:
2. 演示一下代理IP去访问目标网址吧
①打开浏览器,去搜索几个免费的代理ip吧,如下是我找的免费ip代理(时间是2020年07月28日 09:53,后续也许能用,也许用不了,用不了的话,就自己网上找一下吧)
58.211.134.98 38480
171.35.163.230 9999
218.241.154.252 3128
118.113.247.4 9999
182.149.82.88 9999
116.196.85.150 3128
110.189.152.86 40698
②找到免费的代理ip,然后就开始写代码,如下代码:
# 方法一
import urllib.request
# 请求的url
url = "https://movie.douban.com/"
# 添加请求头字典
# headers = {
# 'User-Agent': "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36",
# 'Referer': " https://movie.douban.com/",
# 'Connection': "keep-alive"}
# 注意:此处的headers要写为一个元组类型才可以。写为字典类型的话会报错!
headers = [('User-Agent',"Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36"),
('Referer',"https://movie.douban.com/"),
('Connection',"keep-alive")]
# ①设置代理IP
proxy_handler = urllib.request.ProxyHandler({
'http':'58.211.134.98:38480',
'http':'171.35.163.230:9999',
'http':'218.241.154.252:3128',
'http':'118.113.247.4:9999',
'http':'182.149.82.88:9999',
'http':'116.196.85.150:3128',
'http':'110.189.152.86:40698'
})
# ②使用build_opener()函数创建带有代理ip功能的opener对象
opener = urllib.request.build_opener