1

私は、python requests モジュールを使用して Web ページにログインすることに取り組んでいます。URL でリクエストを実行し、それを解析してcsrf_tokenを取得していますが、 を実行してからを使用すると、が変更され、無効な でログインできません。GETBeautifulSoupcsrf_tokenPOSTcsrf_tokenGETcsrf_tokencsrf_token

からへcsrfの変更は理解していますが、 からへ変更すべきではありません。csrf_token を変更しないようにするにはどうすればよいですか? ソースにもアクセスできますが、私はそれを書きませんでした。GETGETGETPOST

コードにステップインすると、 を から取得したものにpdb.set_trace()変更して続行すると、すべてが機能します。csrf_tokenGET

ここに私が持っているリクエストコードがあります:

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 ページにログインできます。

あなたが私を助けるのを助けるために、私は他にどのような情報を提供できますか?

ありがとう

4

0 に答える 0