800819103
在线客服,实时响应qq群
在线客服,实时响应客服电话
13318873961用网络爬虫爬取网上平台的信息内容经常会碰到的问題是,你的网络爬虫行为被另一方识别了,另一方把你的IP屏蔽掉,返回不了正常的网络数据给你。那么这时就必须运用代理IP来伪装你的请求了。但这代理IP如何来的呢?爬虫怎么获取可用IP,这是个问题,现在最常见的方法是在网络上抓取IP,并进行验证,可用的IP保存后进行调用。
一、爬虫怎么获取可用IP
1.请求网页页面数据
请求网页页面数据是用到requests库去做网络请求的,填写url,和header头部信息内容,运用get请求方法去请求,获得response相应后,返回response.text即是响应的文本内容,即网页文本内容。
2.解析网页页面数据
返回正确的网页数据之后,就可以开始对它开展解析了,在这里运用BeautifulSoup库进行网页内容解析。假如是Chrome浏览器,按f12可以查询网页源码。
寻找某个tr行,第1个和第2个td列就是是ip和端口信息,于是我们还可以用BeautifulSoup查找所以的tr行,再搜索该tr行的第1个和第2个td列即可以获取该页面上所有的ip和端口信息了。
3.验证IP和端口是不是可用
解析到网页页面上的所有ip和端口信息后,还必须验证它是否是有效的,之后对它们开展过滤,获得有效的ip列表。验证方式也是使用它作为代理地址,去请求网络,看是不是能请求完成,假如请求成功,表明是有效的。这样的话,这儿必须添加超时时间,以防止等待时间太长,在这里设置超时时间为5秒。
4.发起请求,存放可用IP和端口信息
二、爬虫怎么调用代理IP
1.开Python3,导入urllib的request,调用ProxyHandler,它可以接收代理IP的参数。
2.把IP地址以字典的形式放入其中,设置键为http,当然有些是https的,之后后面就是IP地址以及端口号,实际看你的IP地址是什么类型的,不一样IP端口号可能不一样。
3.用build_opener()来构建一个opener对象。
4.调用构建好的opener对象里面的open方法来发生请求。事实上urlopen也是类似那样使用内部定义好的opener.open(),在这里就相当于我们自己重写。假如我们使用install_opener(),就可以把之前自定义的opener设置成全局的。
5.设置成全局以后,假如我们再运用urlopen来发送请求,那么发送请求使用的IP地址就是代理IP,而不是本机的IP地址了。
上文介绍了爬虫怎么获取可用IP的方法,并且介绍了爬虫怎么调用代理IP的方法,了解这两点之后,建议进行实战,这些可用很好的掌握突破IP限制的方法。