私は、python requests モジュールを使用して Web ページにログインすることに取り組んでいます。URL でリクエストを実行し、それを解析してcsrf_token
を取得していますが、 を実行してからを使用すると、が変更され、無効な でログインできません。GET
BeautifulSoup
csrf_token
POST
csrf_token
GET
csrf_token
csrf_token
からへcsrf
の変更は理解していますが、 からへ変更すべきではありません。csrf_token を変更しないようにするにはどうすればよいですか? ソースにもアクセスできますが、私はそれを書きませんでした。GET
GET
GET
POST
コードにステップインすると、 を から取得したものにpdb.set_trace()
変更して続行すると、すべてが機能します。csrf_token
GET
ここに私が持っているリクエストコードがあります:
import sys
import requests
from bs4 import BeautifulSoup
#~ URL = 'https://portal.bitcasa.com/login'
URL = 'http://0.0.0.0:12080/login'
EMAIL = 'foo@foo.com'
PASSWORD = 'abc123'
CLIENT_ID = 12345
client = requests.session(config={'verbose': sys.stderr})
# Retrieve the CSRF token first
soup = BeautifulSoup(client.get(URL).content)
csrftoken = soup.find('input', dict(name='csrf_token'))['value']
print csrftoken
# Parameters to pass
data = dict(email=EMAIL, password=PASSWORD, csrf_token=csrftoken)
headers = dict(referer=URL)
params = dict(client_id=CLIENT_ID)
r = client.post(URL, data=data, headers=headers, params=params)
print r
print r.text
この方法で他の Web ページにログインできます。
あなたが私を助けるのを助けるために、私は他にどのような情報を提供できますか?
ありがとう