2015-11-29 61 views
2

我正在查看this guide使用Tor和用戶代理切換器與Scrapy。它與這個主題的其他指南相似。 Tor大約每10分鐘更換一次IP地址。中間件根據每個請求更改用戶代理。Scrapy:同步用戶代理更改與IP地址更改

我想同步用戶代理更改與IP地址更改。爲了實現這一點,我需要在Scrapy發送請求之前執行一些代碼。代碼將檢查自上次請求以來IP是否發生了更改,如果是,則更改用戶代理。如果IP沒有改變,它將使用相同的用戶代理。我無法在執行週期的正確位置找到調用此代碼的方法。

希望進行此更改的理由是,在我所刮取的網站上,使用不同用戶代理的多個請求來自同一個IP地址的情況並不常見。

回答

1

您必須使用Downloader Middleware,特別是聲明process_request方法,以便在進行實際請求之前處理對象Request

在那裏你可以聲明與每個請求代理相關user-agents的字典,請記住,你可以用request.meta['proxy'] = "host:port"

指定每個請求代理