|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
在做爬虫的过程中,如果你爬取的频率过快,不符合人的操作模式。有些网站的反爬虫机制通过监测到你的IP异常,访问频率过高。就会对你进行封IP处理。目前已有比较多的第三方平台专门进行代理IP的服务,那如何使用平台提供的http代理呢,一般好的平台都会提供两种使用方式:
1传统的API提取模式: API链接提取格式如下
API就是url链接,例如:http://ip.16yun.cn:817/************ 用户的爬虫程序需要支持API的自动提取代理IP,定期从url中获取代理IP的相关信息,格式如下:
(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"
# 代理服务器(产品官网 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
这种是比较常见使用自动转发代理的demo,其他爬虫语言使用方式也大同小异。
以上是使用http代理的常见的两种方式,我也是经常使用代理,觉得自动转发的代理更加好用,方便,简单,速度快。避免了我在爬虫使用代理中的很多麻烦。
|
|