【问题标题】:How to add additional parameters to the urllib2 opener如何向 urllib2 开启程序添加附加参数
【发布时间】:2012-10-16 05:00:18
【问题描述】:

我找到了这个网站: https://panopticlick.eff.org/ 这基本上为您提供了一些关于您的浏览器的信息。它提出了一个问题。所以我试图创建一个 urllib2 开启器,我唯一做的就是改变它的用户代理: 所以我的开瓶器看起来像这样:

class URLOpener():      
    def opener(self,user_agent):
        cj=cookielib.CookieJar()
        #Process Hadlers
        opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
        opener.addheaders=[
                        ('User-Agent', user_agent),
                        ('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'),
                        ('Accept-Language', 'en-gb,en;q=0.5'),
                        ('Accept-Charset', 'ISO-8859-1,utf-8;q=0.7,*;q=0.7'),
                        ('Keep-Alive', '115'),
                        ('Connection', 'keep-alive'),
                        ('Cache-Control', 'max-age=0'),
                    ]
        return opener

我的问题是如何在我的 URLOpener 中添加这样的内容:

  1. 浏览器插件详情
  2. 时区
  3. 屏幕尺寸和颜色深度
  4. 系统字体
  5. 有限的超级cookie

【问题讨论】:

    标签: python browser http-headers urllib2 bots


    【解决方案1】:

    你不能。

    其中大部分内容不会通过您的浏览器传递到网络服务器。 panopticlick 可以显示这些值的原因是它使用 Javascript 来访问它们。

    你可以自己看看。在 Chrome 或 firefox 中打开开发者控制台中的网络选项卡,查看当您向网站发出请求时发送的实际标头。

    【讨论】:

    • 所以基本上,你说的是,如果在我的网站上我会尝试检查客户端的“浏览器插件详细信息”并且会得到 None,这意味着,这不是人吗?
    • 我是说浏览器插件详细信息是使用 Javascript 而不是作为 HTTP 标头发送的。
    • 知道了。但是你知道我可以用什么库来模拟它吗?
    • 我没有,但你可以看看 panopticlick 的源代码,看看它是如何做到的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-23
    • 2011-09-15
    • 2013-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多