溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Scrapy框架使用代理IP要點是什么

發(fā)布時間:2021-10-28 18:43:40 來源:億速云 閱讀:111 作者:柒染 欄目:大數(shù)據(jù)

Scrapy框架使用代理IP要點是什么,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

scrapy框架通過模塊化的設計實現(xiàn)了數(shù)據(jù)采集的通用功能接口,并提供自定義拓展,它將程序員從繁冗的流程式重復勞動中解放出來,給編程人員提供了靈活簡便的基礎構(gòu)建,對于普通的網(wǎng)頁數(shù)據(jù)采集,編程人員只需要將主要精力投入在網(wǎng)站數(shù)據(jù)分析和網(wǎng)站反爬策略分析上,結(jié)合代理IP的使用,可以實現(xiàn)項目的高效快速啟動。

主要特性包括:

1)參數(shù)化設置請求并發(fā)數(shù),自動異步執(zhí)行

2)支持xpath,簡潔高效

3)支持自定義中間件middleware

4)支持采集源列表

5)支持獨立調(diào)試,方便 shell 方式

6)支持數(shù)據(jù)管道接口定義,用戶可以選擇文本、數(shù)據(jù)庫等多種方式

在Scrapy框架中使用代理的方式有如下幾種:

1.scrapy中間件

在項目中新建middlewares.py文件(./項目名/middlewares.py),內(nèi)容如下:

#! -*- 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):

       # 代理服務器(產(chǎn)品官網(wǎng) 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切換頭(根據(jù)需求)

       tunnel = random.randint(1,10000)

       request.headers['Proxy-Tunnel'] = str(tunnel)

修改項目配置文件 (./項目名/settings.py)

   DOWNLOADER_MIDDLEWARES = {

       '項目名.middlewares.ProxyMiddleware': 100,

   }

2.scrapy環(huán)境變量

通過設置環(huán)境變量,來使用爬蟲代理(Windows)

  C:\>set http_proxy=http://username:password@ip:port

關(guān)于Scrapy框架使用代理IP要點是什么問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI