1. 程式人生 > 程式設計 >python3 Scrapy爬蟲框架ip代理配置的方法

python3 Scrapy爬蟲框架ip代理配置的方法

什麼是Scrapy?

  Scrapy是一個為了爬取網站資料,提取結構性資料而編寫的應用框架,非常出名,非常強悍。所謂的框架就是一個已經被集成了各種功能(高效能非同步下載,佇列,分散式,解析,持久化等)的具有很強通用性的專案模板。對於框架的學習,重點是要學習其框架的特性、各個功能的用法即可。

一、背景

在做爬蟲專案的過程中遇到ip代理的問題,網上搜了一些,要麼是用阿里雲的ip代理,要麼是搜一些網上現有的ip資源,然後配置在setting檔案中。這兩個方法都存在一些問題。

1、阿里雲ip代理方法,網上大都是配置阿里雲的ip代理的使用者名稱、密碼然後加密、解密。我按照上面的方面操作,發現阿里雲上面的ip代理的引數裡面沒有使用者名稱、密碼相關的引數配置了。

2、至於網上查到的另外一種方法是在setting檔案裡面新增代理IP資源池,然後再在middlewares.py檔案裡面新增上一些程式碼來實現,但代理ip不一定是可用的。

二、改進方法

1、基於背景中提到的網上兩種方法的侷限性,我在此綜合了兩種方法。

2、改進方法:

1)利用阿里雲的ip代理API生成50個代理IP資源池(用自己的阿里雲賬號登陸生成的,ip有效性得到保障)

2)直接在middlewares.py中新增如下函式,PROXIES為在阿里雲上面生成的ip,此處涉及到個人隱私,故用****代替。

class my_proxy(object):
  def process_request(self,request,spider):
    PROXIES = ['http://****.****.****.****:8080']
    ip = random.choice(PROXIES)
    request.meta['Proxy-Authorization'] = ip 

注意:request.meta的方括號裡面的關鍵字需要寫對,不然無法正常執行。

總結

以上所述是小編給大家介紹的python3 Scrapy爬蟲框架ip代理配置的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對我們網站的支援!
如果你覺得本文對你有幫助,歡迎轉載,煩請註明出處,謝謝!