【Python3 爬虫】12_代理IP的使用
我们在爬取页面的时候,如果长时间使用一个网址去爬取某个网站,就会受爬去限制,此时,我们引用了代理IP,IP随时在变化,也就不会被限制了
一下是国内提供免费代理IP的地址:http://www.xicidaili.com/
我们打开这个网页后可以看到如下图的代理IP与地址
上图标记部分就是一个代理IP与其端口号
那么下面我们就开始使用代理IP来爬取内容
首先,我们需要自定义opener,为什么要自定义opener呢?那是由于,基本的urlopen方法不支持代理,所以需要支持这个功能:
- 使用相关的Handler处理器来创建特定的处理器对象
- 然后通过urllib.request.build_opener方法使用这些处理器对象,创建自定义的opener对象
- 将自定义的opener对象定义为全局opener(表示如果但凡后边用到urlopen,都将使用这个opener)
具体实现代码如下:
import urllib.request ''' 定义函数 ''' def proxy_use(url,tm_ip): proxy = urllib.request.ProxyHandler({"http":tm_ip}) opener = urllib.request.build_opener(proxy,urllib.request.HTTPHandler) #定义全局opener urllib.request.install_opener(opener) #获取网页内容 content = urllib.request.urlopen(url).read().decode("UTF-8","ignore") return content ip = "14.118.254.1:6666" url = "http://www.baidu.com" content = proxy_use(url,ip) print(len(content))
运行结果如下:
作者:奔跑的金鱼
声明:书写博客不易,转载请注明出处,请支持原创,侵权将追究法律责任
个性签名:人的一切的痛苦,本质上都是对自己无能的愤怒
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!