2013-04-21 50 views
1

如何使用Python請求我有這樣的代碼:與HTTPS

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手機(我知道有一個API,這只是爲了好玩)...我已經創建一個類似的腳本使用機械化,它的工作原理!

我的代碼有什麼問題?謝謝

+0

什麼是你得到的迴應? – 2013-04-21 07:40:17

+0

它不會登錄,所以它跳回/會話/新 – kholidfu 2013-04-21 07:45:33

回答

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 
+0

謝謝...從來沒有使用html.forms [0] .fields之前...... – kholidfu 2013-04-21 11:46:31