爬蟲在當今網絡流行的今天已經成為很多人耳熟能詳的一個詞,它依託於腳本檔案,開發人員根據一定邏輯編寫程式碼,使之按照預定規則進行萬維網資訊抓取。
網路爬蟲實際上是利用腳本在短時間內對大量網頁進行訪問,追跡腳本指定特定目標,抓取資訊。 但因為瀏覽器對同一IP地址在固定時間訪問頻率有限制,限制為防止服務器運行壓力過大出錯。 這時候,為解除限制,很快獲得數據,代理IP成為網路爬蟲的優先選擇。 98IP海外代理擁有海量動態住宅IP,IP代理池遍佈全球範圍,能够為網絡爬蟲程式提供强大的科技支撐。
IP代理為網路爬蟲提供靈活性IP地址,通過不斷更換IP地址,防止出觸動服務器的反爬蟲機制,具體如下。
獲取地址和埠號,這裡提到是獲取API連結IP地址
def get_ip_list():
url=”XXX”
resp=requests.get(url)
//選取頁面數據
resp_json=resp.text
將JSON字串數據轉化為字典
resp_dict=json.loads(resp_json)
ip_dict_list=resp_dict.get(‘data’)
將data字串中數據取出
return ip_dict_list
有部分非IP白名單的IP需要使用者密碼驗證,API連結會對用戶名與密碼進行加密,有需要書寫程式碼驗證加密。
向目標網址發送請求,獲取相關資料。 成功則訪問響應資訊,失敗則列印結果
def spider_ip(ip_port,url)://真正要請求的url地址
headers1 = {
“User-Agent”:'XXX'
//瀏覽器資訊
}
headers = {
'Proxy-Authorization':'Basic %s' %(base_code(username,password))
//用戶名+密碼
}
//代理IP地址放到proxy參數中
proxy = {
'http':'http://{}'.format(ip_port)
}
//發送網絡請求
請求成功
try:
reap = requests.get(url, proxies=proxy,headers=headers,headers1=headers1)
//解析訪問資料
result = reap.text
//發送失敗,列印此代理失效
except:
result = '此代理失效'
本文介紹就到這裡,更多IP資訊敬請期待下文。