亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

即使在 scrapy 中使用代理旋轉也無法擺脫有問題的頁面

即使在 scrapy 中使用代理旋轉也無法擺脫有問題的頁面

小唯快跑啊 2023-10-18 21:33:01
我使用 scrapy 創建了一個腳本,在其中實現代理輪換,以解析address數百個類似的鏈接,如下所示。我已經從腳本中的 csv 文件提供了這些鏈接。該腳本運行良好,直到遇到任何像這樣的響應 url https://www.bcassessment.ca//Property/UsageValidation。鑒于一旦腳本開始獲取該鏈接,它就無法繞過該鏈接。僅供參考,我使用包含的元屬性來lead_link使用原始鏈接而不是重定向鏈接作為重試,因此我應該能夠繞過該障礙。當我在請求庫中使用代理時,不會發生這種情況。更清楚地說 - 在使用請求庫時,腳本確實遇到此頁面/Property/UsageValidation,但在幾次重試后成功繞過該頁面。蜘蛛就像:class mySpider(scrapy.Spider):    name = "myspider"    custom_settings = {        'DOWNLOADER_MIDDLEWARES': {            'stackoverflow_spider.middlewares.ProxiesMiddleware': 100,        }    }    def start_requests(self):        with open("output_main.csv","r") as f:            reader = csv.DictReader(f)            for item in list(reader):                lead_link = item['link']                yield scrapy.Request(lead_link,self.parse,meta={"lead_link":lead_link,"download_timeout":20}, dont_filter=True)    def parse(self,response):        address = response.css("h1#mainaddresstitle::text").get()        print(response.meta['proxy'],address)if __name__ == "__main__":    c = CrawlerProcess({        'USER_AGENT':'Mozilla/5.0',        'LOG_LEVEL':'ERROR',    })    c.crawl(mySpider)    c.start()如何讓腳本不遇到該頁面?PS:我在文本文件中附加了一些鏈接,以防有人想嘗試。
查看完整描述

1 回答

?
忽然笑

TA貢獻1806條經驗 獲得超5個贊

要為 scrapy 應用程序實現會話安全代理實現,您需要添加額外的cookiejar元鍵來放置代理分配的位置,request.meta如下所示:

....
yield?scrapy.Request(url=link,?meta?=?{"proxy":address,?"cookiejar":address})

在這種情況下,scrapycookiesMiddleware將為每個代理創建額外的 cookieSession。


查看完整回答
反對 回復 2023-10-18
  • 1 回答
  • 0 關注
  • 117 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號