python3爬虫之IP代理
来源:互联网 发布:高瓴资本 知乎 编辑:程序博客网 时间:2024/05/21 14:51
IP代理的使用
为何使用代理IP
User Agetn 已经设置好了,但是还应该考虑一个问题,程序的运行速度是很快的,如果我们利用一个爬虫在网站爬取,一个固定IP的访问频率就会很高,这不符合人为操作的标准,因为人不可能在几ms内,进行如此频繁的访问。所以一些网站会设置一个IP访问频率的阈值,如果超过这个阈值,说明不是人访问,而是一个爬虫程序。
一般步骤说明
简单的方法就是设置延时,但是这获取信息太慢,所以另一种方法更好,就是使用IP代理,使用代理的步骤:
调用urilib.request.ProxyHandler(),proxies参数为一个字典。
class urllib.request.ProxyHandler(proxies=None)
创建Opener(类似于urlopen,这个代开方式就是我们自己定制的)
urllib.request.build_opener([handler,...])
安装Opener
urllib.request.install_opener(opener)
使用install_opener方法之后,会将程序默认的urlopen方法替换掉。也就是说,如果使用install_opener之后,在改文件中,再次调用urlopen会使用自己穿件好的opener。如果不想替换掉,只是想临时使用一下,可以使用opener.open(url),这样就不会对程序默认的urlopen有影响。
- 代理IP选取
在写代码之前,先在代理IP网站选好一个IP地址,可以使用西刺代理IP.
url:http://www.xicidaili.com/
注意:当然可以写个正则表达式从网站爬取IP,但是要记住不要太频繁爬取,加个延时,太频繁给服务器带来压力了,服务器会直接把你block,不让你访问的。
我的选择如下:175.155.24.118:808
好不容易找到了一个可以查ip的网站:http://1212.ip138.com/ic.asp
代码如下:
`
from urllib import request
if __name__ == "__main__":#访问网址url = "http://1212.ip138.com/ic.asp"#这是代理IPproxy = {'http':'175.155.24.118:808'}#创建ProxyHandlerproxy_handler = request.ProxyHandler(proxy)#创建openeropener = request.build_opener(proxy_handler)#添加User agentopener.addheaders = [('User-Agent','Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36'), ('Accept','text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'), ('Referer','http://www.ip138.com/'), ('Accept-Language','zh-CN,zh;q=0.8'), ('Accept-Encoding','gzip,deflate, sdch'), ('Host','1212.ip138.com')]#安装openerrequest.install_opener(opener)#使用该openerres = request.urlopen(url)#读取信息html = res.read()#打印print(html) `
运行结果如下:
在设置headers时,从浏览器开发者模式找到上诉页面(推荐用chrome,360浏览器好像有问题),复制Request-Headers里的信息,然后可以借用postman这个工具,尝试看看能不能Post过去得到信息。
- python3爬虫之IP代理
- python3爬虫伪装代理IP
- Python3爬虫之代理的使用
- Python3 爬虫使用User Agent和代理IP隐藏身份
- python3使用代理ip伪装爬虫访问网站
- Python3网络爬虫(十一):爬虫黑科技之让你的爬虫程序更像人类用户的行为(代理IP池等)
- Python3 爬虫--公司代理问题解决
- 爬虫代理ip设置
- 爬虫代理ip设置
- 爬虫代理IP
- Python 爬虫IP代理
- 爬虫 IP代理策略
- python3实现网络爬虫(7)-- 使用ip代理抓取网页
- Python3网络爬虫(四):使用User Agent和代理IP隐藏身份
- Python3网络爬虫(四):使用User Agent和代理IP隐藏身份
- Python3网络爬虫_使用User Agent和代理IP隐藏身份
- python IP代理爬虫,download 代理IP
- python3爬虫之旅
- hadoop作业调优参数整理及原理
- python3爬虫之UserAgent
- 数组与集合的应用之数组演练(利用数组随机抽取幸运观众)
- 树形数据结构
- mybatis批量插入
- python3爬虫之IP代理
- spring的基础——1(摘选自传智播客的视频,转载请保留这句话)
- 2017/6/7
- 实验四 DPCM压缩系统的实现和分析
- 商品表中为什么要同时上传不规格的图片?
- 全局对象和全局静态、局部静态析构顺序
- 数组与集合的应用之数组演练(用数组设置JTable表格的列名与列宽)
- 不同环境中添加python默认的搜索路径
- apt