scrapy請求頭首字母大寫的解決方法

2021-10-02 01:50:10 字數 1070 閱讀 3466

背景:同樣的url, headers, payload進行post請求,requests可以正確的拿到資料,而scrapy則無法通過驗證。

通過抓包發現,scrapy所發出的請求頭首字母均為大寫,在postman

中將請求頭的各個key改為小寫後能正確拿到請求資料。

原因:scrapy的request物件通過傳入的headers字典初始化了乙個scrapy.http.headers物件,headers的例項會將各個key呼叫title方法將各個單詞的首字母大寫。

然而在github上尋找相關的issue時,發現雖然scrapy在這裡進行了key的格式化,但是即使我們在scrapy這裡保持小寫,也會在通過twisted的時候,twisted框架會將headers中的key首字母大寫。

因此在scrapy這裡是沒有必要做什麼操作的,那如果要解決這種問題,我們可以更新twistedheaders的請求頭對映關係。

在spider**中加上下面一段**,headers中的這些欄位就會保持小寫。

首字母大寫

對乙個字串中的所有單詞,如果單詞的首字母不是大寫字母,則把單詞的首字母變成大寫字母。在字串中,單詞之間通過空白符分隔,空白符包括 空格 製表符 t 回車符 r 換行符 n 輸入一行 待處理的字串 長度小於100 可能有多組測試資料,對於每組資料,輸出一行 轉換後的字串 輸入可以接受空格,回車等空白符...

string首字母大寫

定義函式將字串首字母大寫 例1 study hard,improve every day.def tojadencase string return string.title print tojadencase study hard,improve every day.例2 how can mirr...

Python 首字母大寫 map

利用 map 函式,把使用者輸入否認不規範的英文名字,變為首字母大寫,其他小寫的規範名字。輸入 adam lisa bart 輸出 adam lisa bart def normalize name for n in name return n 1 upper n 1 lower l1 adam l...