python和爬蟲代理的關聯

Laical發表於2020-08-05

HTTP就相當於一個傳輸機制,在甲方和乙方的中間傳輸自己想要的一種資料。

怎麼在python中使用爬蟲代理。http代理是爬蟲研發中不可缺少的一部分。假如需要大量採集網際網路網站上的資料,長時間訪問必定網站會出現反爬。為了避免出現這種問題,一般需要把請求分配到其他不同的爬蟲程式上。

由於部分公司為了降低成本,就會再網際網路網站上採集一些免費的肉雞代理IP或者購買付費代理去進行採集。

網際網路上的免費代理,大家網上隨便搜尋都能出來一大批,至於網上的免費代理的安全性和可用性,一般的爬蟲研發一測試就知道好與壞。假如資料採集中 有部分內容包含 需要登入等的話 還是不要用網上的免費IP。可以自己搭建一個IP池或者購買億牛雲的付費代理

python爬蟲使用http代理:

#! -- encoding:utf-8 -- import base64 import sys import random PY3 = sys.version_info[0] >= 3 def base64ify(bytes_or_str): if PY3 and isinstance(bytes_or_str, str): input_bytes = bytes_or_str.encode(‘utf8’) else: input_bytes = bytes_or_str output_bytes = base64.urlsafe_b64encode(input_bytes) if PY3: return output_bytes.decode(‘ascii’) else: return output_bytes class ProxyMiddleware(object): def process_request(self, request, spider): # 代理伺服器(產品官網 www.16yun.cn) proxyHost = “t.16yun.cn” proxyPort = “31111” # 代理驗證資訊 proxyUser = “username” proxyPass = “password” request.meta[‘proxy’] = “http://{0}:{1}”.format(proxyHost,proxyPort) # 新增驗證頭 encoded_user_pass = base64ify(proxyUser + “:” + proxyPass) request.headers[‘Proxy-Authorization’] = ‘Basic ‘ + encoded_user_pass # 設定IP切換頭(根據需求) tunnel = random.randint(1,10000) request.headers[‘Proxy-Tunnel’] = str(tunnel)

總結:無論是什麼爬蟲,在爬蟲過程中http代理很重要。當然如果要高效安全穩定的採集資料,還是需要在網上購買一些付費的億牛雲高匿爬蟲代理。

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

相關文章