2015-10-05 22 views
2

我需要從Python3中的Urllib-Request頭中刪除User-Agent,但如果我確實遵循,那麼它仍然會傳輸User-Agent,而沒有值。Python3 - Urllib2 |需要完全刪除「User-Agent」頭文件

url = "xxx" 

headers = { 
    "User-Agent": "" 
} 

req = urllib.request.Request(url, headers=headers) 
resp = urllib.request.urlopen(req) 

的問題是,我需要有用戶代理完全從頭部取出,而不只是一個空字符串,從而使isset($ _ SERVER [「HTTP_USER_AGENT」])在PHP將返回false 。

感謝, 倫納特

回答

2

執行下列固定我的問題。

headers = { 
    "User-Agent": None 
} 

不幸的是,我不得不從的urllib2切換到「請求」模塊,因爲urllib的,使用「無」已拋出錯誤。

無論如何感謝所有的答覆!

2

你可以建立自己的揭幕戰,並刪除'User-Agent'頭:

#!/usr/bin/env python3 
import urllib.request 

opener = urllib.request.build_opener() 
opener.addheaders = [(header, value) 
        for header, value in opener.addheaders 
        if header.casefold() != 'user-agent'] 

with opener.open(url) as response: 
    handle(response) 
+0

我已經晚了幾年,但這絕對是正確的答案。修改OpenerDirector實例的addheaders值實際上包含在[urllib2的示例部分](https://docs.python.org/2/library/urllib2.html#examples)中。 –