鍍金池/ 問答/人工智能  數(shù)據(jù)分析&挖掘  Python/ scrapy如何通過中間件設(shè)置User-Agent?

scrapy如何通過中間件設(shè)置User-Agent?

主要問題在中間件的request方法,網(wǎng)上都是使用process_request,我用了后根本沒效果,沒有調(diào)用,然后看官方文檔,發(fā)現(xiàn)中間件方法改成了process_start_requests,我試了下確實(shí)可以調(diào)用,可是設(shè)置UA時(shí)會(huì)報(bào)錯(cuò),說request沒有headers屬性,這是為什么?

class RandomAgentMiddleware(UserAgentMiddleware):

    def process_start_requests(self, request, spider):
        request.headers.setdefault('User-Agent', xxx)
回答
編輯回答
挽青絲

圖片描述

print這個(gè)看一下吧

clipboard.png

2017年12月31日 11:54
編輯回答
小眼睛

在setting.py里加入

USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.54 Safari/536.5'

2017年10月16日 00:54
編輯回答
傻叼

自定義請(qǐng)求頭時(shí)候要在setting里面添加自定義的中間件,同時(shí)禁用原有的請(qǐng)求頭中間件,不然沒用

2018年3月7日 19:31
編輯回答
殘淚

項(xiàng)目的setting.py中有USER_AGENT參數(shù)的設(shè)置, 默認(rèn)是被注釋的

clipboard.png
注釋去掉,然后自己設(shè)置參數(shù)

2018年5月11日 00:40