1

我有这个代码:

import requests

url = 'https://mobile.twitter.com/session/new'

payload = {
       'username': 'username',
       'password': 'password',
       }
with requests.Session() as c:
    c.post(url, data=payload)
    r = c.get('https://mobile.twitter.com/account')
    print 'username' in r.content

目标是登录 twitter mobile(我知道有一个 API,这只是为了好玩)......我已经使用 mechanize 创建了一个类似的脚本,它可以工作!

我的代码有什么问题?谢谢

4

1 回答 1

3

如果您查看登录表单隐藏字段,您会发现那里authenticity_token是必需的。另外,你url错了。

这是完整的例子:

import requests
from lxml.html import fromstring

with requests.Session() as c:
    url = 'https://mobile.twitter.com/session'
    response = c.get(url)

    html = fromstring(response.content)
    payload = dict(html.forms[0].fields)

    payload.update({
       'username': '<username>@gmail.com',
       'password': '<password>',
    })

    print payload

    c.post(url, data=payload)
    r = c.get('https://mobile.twitter.com/account')
    print '<username>' in r.content
于 2013-04-21T09:25:03.133 回答