【问题标题】:How to configure the python Twill/Mechanize library to acces Facebook如何配置 python Twill/Mechanize 库以访问 Facebook
【发布时间】:2011-10-14 19:06:26
【问题描述】:

我正在尝试使用 python 和 Twill 运行一些自动化功能测试。测试验证我的应用程序的 OAuth 登录和连接端点是否正常工作。

幸运的是,Twitter 并不介意 Twill/Mechanize 正在访问 twitter.com。但是,Facebook 不喜欢我使用 Twill 访问 facebook.com 的事实。我得到了他们的“不兼容的浏览器”响应。我只是想访问他们的 OAuth 对话页面并允许或拒绝我正在测试的应用程序。有没有办法配置 Twill/Mechanize,让 Facebook 认为它是标准浏览器?

【问题讨论】:

    标签: python facebook browser twill


    【解决方案1】:

    尝试使用机械化发送用户代理标头。

    【讨论】:

    • 我实际上尝试过: browser.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora /3.0.1-1.fc9 Firefox/3.0.1')] 好奇它是否将其应用于之后的每个请求,或者您是否必须在每个请求之前设置它?
    • 我猜它是持久的,只要你重用你的浏览器对象实例。 Maybee FB 做了某种测试浏览器是否支持 javascript...?
    • 如果我运行斜纹命令add_extra_header User-Agent "Mozilla/5.0 (Windows NT 6.1; rv:10.0) Gecko/20100101 Firefox/10.0",它似乎对我有用。也许是您的“用户代理”中的小写“a”导致它失败?
    【解决方案2】:

    试试这个!

    from twill.commands import *
    
    def login(email, password):
        go('http://www.facebook.com')
        add_extra_header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; rv:10.0) Gecko/20100101 Firefox/10.0")
        formclear('1')
        fv("1", "email", email)
        fv("1", "pass", password)
        fv("1", "persistent", "1")
        submit()
    

    然后:

    login('something@example.com', 'password1')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-21
      • 1970-01-01
      • 1970-01-01
      • 2011-06-11
      • 1970-01-01
      相关资源
      最近更新 更多