【问题标题】:Send headers along in python [duplicate]在python中发送标题[重复]
【发布时间】:2010-10-20 04:54:56
【问题描述】:

我有以下 python 脚本,我想发送“假”头信息,以便我的应用程序像 firefox 一样运行。我怎么能这样做?

import urllib, urllib2, cookielib

username = '****'

password = '****' 

login_user = urllib.urlencode({'password' : password, 'username' : username})

jar = cookielib.FileCookieJar("cookies")

opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(jar))

response = opener.open("http://www.***.com")

response = opener.open("http://www.***.com/login.php")

response = opener.open("http://www.***.com/welcome.php", login_user)

【问题讨论】:

    标签: python post http-headers


    【解决方案1】:

    在您的 opener 对象上使用 addheaders() 函数。
    在您创建开瓶器之后,在您开始打开页面之前添加这一行:

    opener.addheaders = [('User-agent', 'Mozilla/5.0')]
    

    http://docs.python.org/library/urllib2.html(在本文档的底部)

    【讨论】:

      【解决方案2】:

      你必须获得更多的底层才能做到这一点。

      request = urllib2.Request('http://stackoverflow.com')
      request.add_header('User-Agent', 'FIREFOX LOL')
      opener = urllib2.build_opener()
      data = opener.open(request).read()
      print data
      

      未测试。

      【讨论】:

        【解决方案3】:

        FWIW,取决于您想模仿 Firefox 的精确程度,设置 User-Agent 可能还不够(尽管对于大多数情况来说这可能就足够了)。为了使您的脚本看起来像“正常”的网页浏览,您可能需要设置一个适当的引用者并对页面的其余内容(Javascript/CSS/Images/Flash/etc)发出额外的请求。一些事情,虽然可能不适合您的特定情况。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-08-12
          • 2020-01-08
          • 1970-01-01
          • 1970-01-01
          • 2012-06-01
          • 2011-04-17
          • 1970-01-01
          • 2016-11-10
          相关资源
          最近更新 更多