Python 网络爬虫之关于爬虫 http 代理的常见使用方式

laical1 · 2020年04月29日 · 371 次阅读

在做爬虫的过程中,如果你爬取的频率过快,不符合人的操作模式。有些网站的反爬虫机制通过监测到你的 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 代理的常见的两种方式,我也是经常使用代理,觉得自动转发的代理更加好用,方便,简单,速度快。避免了我在爬虫使用代理中的很多麻烦。

更多原创文章干货分享,请关注公众号
  • 加微信实战群请加微信(注明:实战群):gocnio
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册