在做爬虫的过程中,如果你爬取的频率过快,不符合人的操作模式。有些网站的反爬虫机制通过监测到你的IP异常,访问频率过高。就会对你进行封IP处理。目前已有比较多的第三方平台专门进行代理IP的服务,那如何使用平台提供的http代理呢,一般好的平台都会提供两种使用方式:
1传统的API提取模式: API链接提取格式如下(1)默认支持文本 (2)json格式(在API链接后面加上&format=json,返回JSON格式) (3)在链接后面加上 &part=分隔符 ,分隔符需要使用url转义
而爬虫程序通过获取出来的IP向网站发出请求获取数据。
2自动转发的爬虫代理:通过固定云代理服务地址,建立专线网络链接,代理平台自动实现毫秒级代理IP切换,保证了网络稳定性和速度,避免爬虫客户在代理IP策略优化上投入精力。这种方式适用于专做爬虫的用户或者第一次使用http代理的用户,使用方便更加简单。市面上目前也只有几家代理平台有这种使用方式,这种使用方式比较严格,使用者必须是研发,严格按照自己的爬虫语言参考平台调用代理信息的demo修改接口,配置代理信息使用。每个平台配置爬虫代理的代理信息demo都不一样,其含义都差不多。 例如python网络爬虫设置自动转发代理接口的demo 如下:
#! -*- encoding:utf-8 -*- import requests import random # 要访问的目标页面 targetUrl = "www.baidu.com" # 要访问的目标HTTPS页面 # targetUrl = "www.baidu.com" 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 这种是比较常见使用自动转发代理的demo,其他爬虫语言使用方式也大同小异。
以上是使用http代理的常见的两种方式,我也是经常使用代理,觉得自动转发的代理更加好用,方便,简单,速度快。避免了我在爬虫使用代理中的很多麻烦。
|