首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python3 - Urllib2 \\需要完全删除“用户代理”标头

Python3 - Urllib2 \\需要完全删除“用户代理”标头
EN

Stack Overflow用户
提问于 2015-10-05 17:24:53
回答 2查看 1.9K关注 0票数 2

我需要从Python3中的Urllib请求头中删除User,但是如果我这样做,那么它仍然传输用户代理,只是没有值。

代码语言:javascript
复制
url = "xxx"

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

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

问题是,我需要让用户代理从头中完全删除,而不仅仅是一个空字符串,这样php中的isset($_SERVER"HTTP_USER_AGENT")就会返回false。

谢谢你,伦纳特

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-05 18:47:38

做下面的事解决了我的问题。

代码语言:javascript
复制
headers = {
    "User-Agent": None
}

不幸的是,我不得不从Urllib2切换到"requests“模块,因为使用Urllib时,使用"None”引发了一个错误。

无论如何,谢谢你的回复!

票数 3
EN

Stack Overflow用户

发布于 2015-10-05 18:07:03

您可以构建自己的打开程序并删除'User-Agent'头:

代码语言:javascript
复制
#!/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)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32954366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档