網路爬蟲之關於爬蟲 http 代理的常見使用方式

Laical發表於2020-04-28

在做爬蟲的過程中,如果你爬取的頻率過快,不符合人的操作模式。有些網站的反爬蟲機制通過監測到你的IP異常,訪問頻率過高。就會對你進行封IP處理。目前已有比較多的第三方平臺專門進行代理IP的服務,那如何使用平臺提供的http代理呢,一般好的平臺都會提供兩種使用方式:

1傳統的API提取模式: API連結提取格式如下

API就是url連結,例如: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"

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,

}

proxies = {

“http” : proxyMeta,

“https” : proxyMeta,

}

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代理的常見的兩種方式,我也是經常使用代理,覺得自動轉發的代理更加好用,方便,簡單,速度快。避免了我在爬蟲使用代理中的很多麻煩。

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章