当一个用户访问目标网站出现了限制,说明IP就被限制了。封IP也是网站一种很常见的反爬机制。IP被封后,这时候要么等待,要么就使用代理IP去发出请求访问。这时候就需要使用代理IP池,那什么是代理IP池。
代理IP池:意思就是网络爬虫在采集数据中会遇到各种问题。就要使用隧道转发的代理ip,一个代理IP就一个IP,如果是几十万个代理IP合在一起构建为一个池子,就简称为代理IP池,代理IP池的构建不仅能维护IP池,网络爬虫采集数据时也能更有效的使用有效的代理IP去访问目标网站。
代理IP的获取:一开始许多网络爬虫用户需要代理IP的时候,都会再网上去采集那些免费代理IP,选择一些有效的代理IP,去充实自己的代理IP池。虽然免费的代理IP有个别代理能用,但是时间久了,采集网上的代理IP,不仅效率差,筛选慢,而且对自己的业务效果也不好。为了解决这种情况,所以就会有高匿爬虫代理IP,让网络爬虫多了一种选择,去网上选择一些代理商购买隧道转发的爬虫代理,来更有效的采集业务数据。
代理IP的质量:网络上采集免费代理IP,都没质量保证。所以市面上才有会许多付费高匿代理,其实付费高匿代理IP,也不能完全保证质量。代理IP的质量非常重要,保证好了IP质量,才能保证好业务的进展,所以在选择代理商的时候一定要选择一些自营线路,电信机房宽带,私密家庭IP,隧道转发代理IP,最好是业务独享模式管理的代理商。这样的代理商代理IP的质量一般都很稳定。
python爬虫实现实用爬虫代理:
#! -*- encoding:utf-8 -*- import requests import random # 要访问的目标页面 targetUrl = "http://httpbin.org/ip" # 要访问的目标HTTPS页面 # targetUrl = "https://httpbin.org/ip" # 代理服务器(产品官网 www.16yun.cn) proxyHost = "t.16yun.cn" proxyPort = "31111" # 代理验证信息 proxyUser = "username" proxyPass = "password" proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % { "host" : proxyHost, "port" : proxyPort, "user" : proxyUser, "pass" : proxyPass, } # 设置 http和https访问都是用HTTP代理 proxies = { "http" : proxyMeta, "https" : proxyMeta, } # 设置IP切换头 tunnel = random.randint(1,10000) headers = {"Proxy-Tunnel": str(tunnel)} resp = requests.get(targetUrl, proxies=proxies, headers=headers) print resp.status_code print resp.text
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/aiops/52991.html