2016-08-07 2 views
12

私はhttps://fantasy.premierleague.com/で私のファンタジーフットボールアカウントにログインできるようにPythonスクリプトを書こうとしていますが、私のログインでは正しくないものがあります。私のブラウザでログインしてChrome開発ツールを使って詳細を確認すると、Pythonのリクエストモジュールを使用してバークレイズのプレミアリーグのファンタジーフットボールにログインしますか?

csrfmiddlewaretoken:[My token] 
login:[My username] 
password:[My password] 
app:plfpl-web 
redirect_uri:https://fantasy.premierleague.com/a/login 

リクエストヘッダの数もあります:

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 
Accept-Encoding:gzip, deflate, br 
Accept-Language:en-US,en;q=0.8 
Cache-Control:max-age=0 
Connection:keep-alive 
Content-Length:185 
Content-Type:application/x-www-form-urlencoded 
Cookie:[My cookies] 
Host:users.premierleague.com 
Origin:https://fantasy.premierleague.com 
Referer:https://fantasy.premierleague.com/ 
Upgrade-Insecure-Requests:1 
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 

は、だから私は、要求を使用して、短いPythonスクリプトを書いている私は、リクエストURLがhttps://users.premierleague.com/accounts/login/で、送信されたフォームデータがあることを見つけますライブラリを開き、次のようにログインしてページに移動します。

import requests 
with requests.Session() as session: 
url_home = 'https://fantasy.premierleague.com/' 
html_home = session.get(url_home) 
csrftoken = session.cookies['csrftoken'] 
values = { 
    'csrfmiddlewaretoken': csrftoken, 
    'login': <My username>, 
    'password': <My password>, 
    'app': 'plfpl-web', 
    'redirect_uri': 'https://fantasy.premierleague.com/a/login' 
} 
head = { 
    'Host':'users.premierleague.com', 
    'Referer': 'https://fantasy.premierleague.com/', 
} 
session.post('https://users.premierleague.com/accounts/login/', 
      data = values, headers = head) 
url_transfers = 'https://fantasy.premierleague.com/a/squad/transfers' 
html_transfers = session.get(url_transfers) 
print(html_transfers.content) 

私のポストの要求の内容をプリントアウト上で、私はHTMLレスポンスコード500エラーを取得:

b'\n<html>\n<head>\n<title>Fastly error: unknown domain users.premierleague.com</title>\n</head>\n<body>\nFastly error: unknown domain: users.premierleague.com. Please check that this domain has been added to a service.</body></html>' 

私は私の頭の辞書から「ホスト」を削除した場合、私は、HTMLレスポンスを取得コード405のエラー:

b'' 

私の頭の中にリクエストヘッダーのさまざまな組み合わせを含めてみましたが、何も動作していないようです。

+0

'premierleague.com'を'ホスト 'として使うとどうなりましたか? –

+0

@OrDuan私は同じメッセージを得る:unknown domain premierleague.com –

+0

こんにちは。あなたはチームなどを更新する方法や、Pythonを使って転送を開始する方法を知っていますか? –

答えて

3

次は私のために働いた。私は単に私はあなたが私のように、プログラムであなたのチームを選択しようとしていると思います

session.post('https://users.premierleague.com/accounts/login/', 
      data = values) 

headers = headを削除しました。あなたのコードは私に感謝し始めました。

+1

ありがとう、それは動作するようです。私はそれを実際に試してみましたが、返されたHTMLにはプレーヤー名が含まれていなかったので、ホームページに戻ってきたと思いました!それはプレーヤーのデータがHTMLでコード化されていないようですが、javascriptで印刷されている可能性はありますか?私はGoogle Chromeでソースコードをダウンロードして何も表示されません。それを解析してプレーヤーを変更できるように完全なHTMLを取得する方法を知っていますか? –

関連する問題