如何在使用 Python 脚本登录时维护登录会话

Sah*_*hil 5 python beautifulsoup python-2.7 python-requests

我想使用 python 脚本登录 Ideone.com,然后使用 python 脚本使用后续请求从我自己的帐户中提取内容。这是我用来登录网站的:

import requests
import urllib
from bs4 import BeautifulSoup

url='http://ideone.com/account/login/'
body = {'username':'USERNAME', 'password':'PASSWORD'}

s = requests.Session()
loginPage = s.get(url)
soup = BeautifulSoup(loginPage.text)

r = s.post(soup.form['action'], data = body)
print r
Run Code Online (Sandbox Code Playgroud)

此代码成功登录到我的 ideone 帐户。但是如果我随后调用(使用 BeautifulSoup)来访问我的帐户详细信息,它会再次向我发送登录页面的 HTML。

如何保存特定脚本的会话以便它接受后续调用?提前致谢,如果之前有人问过这个问题,我们深表歉意。

Sah*_*hil 4

我们可以这样做:

from requests import session
from bs4 import BeautifulSoup

payload = {
    'action'   : 'login',
    'username' : 'USERNAME',
    'password' : 'PASSWORD'
}
login_url='http://ideone.com/account/login/'

with session() as c:
    c.post(login_url, data = payload)
    request = c.get('http://ideone.com/myrecent')
    print request.headers
    print request.text
Run Code Online (Sandbox Code Playgroud)