Python3 - Urllib2 |需要删除" User-Agent"头完全

时间:2015-10-05 17:24:53

标签: python python-3.x urllib2

我需要从Python3中的Urllib-Request标题中删除User-Agent,但是如果我这样做,它仍会传输User-Agent,只是没有值。

url = "xxx"

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

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

问题是,我需要让User-Agent从标题中完全删除,而不仅仅是使用空字符串,因此php中的isset($ _ SERVER [" HTTP_USER_AGENT"])将返回假的。

谢谢, 伦纳特

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分:2)

执行以下操作解决了我的问题。

headers = {
    "User-Agent": None
}

不幸的是我不得不从Urllib2切换到“请求”模块,因为使用Urllib时,使用“None”会抛出错误。

非常感谢所有回复!