前提・実現したいこと
TwitterのログインサイトをSeleniumを使わずにスクレイピングし、auth-token(cookie)というアカウントのトークンなどを取得したいと思っているのですがログインに必要なauthenticity_tokenというものが取得できずに困っています。
過去はHTMLサイトでアクセスすれば直接HTMLから取れたようなのですが現在はJS経由で取得しているらしくどうにも見つけたには見つけたのですがvalueの値が生の値でなかったりとうまいこと行きません。
発生している問題・エラーメッセージ(JSのコードを一部抜粋)
}), o.createElement("input", { name: "authenticity_token", type: "hidden", value: this._mobileLoginToken
該当のソースコード
Python3
1import requests 2import pprint 3import json 4 5from bs4 import BeautifulSoup 6 7headers = { 8 'cookie': '_mb_tk=', 9} 10 11data = { 12 'redirect_after_login': '/', 13 'remember_me': '1', 14 'authenticity_token': '', 15 'session[username_or_email]': '', 16 'session[password]': '' 17} 18 19response = requests.post('https://twitter.com/sessions', headers=headers, data=data, allow_redirects=False) 20print(BeautifulSoup(response.text, "html.parser")) 21print(response.cookies)
試したこと
前提に書いてしまいましたが今年初め頃のまだHTML版が存在していた時の取得方法などを試しましたがやはり今はHTMLを取得すると違うページが帰ってきてしまうため不可能でした。
問題の通りvalueの値がなぜこのようになっているのかがわからないため質問させていただきました。
補足情報(FW/ツールのバージョンなど)
該当のソースコードのcookieの_mb_tkとdata内のauthenticity_tokenにauthenticity_tokenを代入したいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。