PythonライブラリのBeautifulSoup4とrequestsを使い、ログイン先のHTMLソースを取得します。
環境
Pythonの実行環境が無い方は、「Colaboratory」での実行をおすすめします。
必要な情報
ログイン後のhtmlを取得する場合、
URLを叩く際に、Webサーバへ以下の情報を送る必要があります。
・クッキー情報
・POSTパラメータ(ログインID、パスワード、トークンなど)
渡す必要のあるPOSTパラメータは、ログイン画面のソースを見ることで判断できます。
<form method=”POST”>の中の、「name」属性があるタグの「value」属性の情報が必要となります。
<form method="POST" action="/login"> <input type="hidden" name="_token" value="06OM24DHZ02FjwLkjmOUoJF4lXa3ruLx0c"> <div>E-Mail Address <input name="email"></div> <div>Password <input name="password"></div> <div><button type="submit" class="btn btn-primary"> Login </button></div> </form>
または、ブラウザで通常のログインをする時に、デベロッパツールで確認することもできます。
プログラム実行
# ライブラリをインストール
pip install requests
pip install BeautifulSoup4
# モジュール読み込み
import requests
from bs4 import BeautifulSoup
# ログインページのURLから、BeautifulSoupオブジェクト作成
url = "https://sitepage.jp/login"
session = requests.session()
response = session.get(url)
bs = BeautifulSoup(response.text, 'html.parser')
# クッキーとトークンを取得
authenticity = bs.find(attrs={'name':'_token'}).get('value')
cookie = response.cookies
# ログイン情報
info = {
"_token": authenticity,
"email": "メールアドレス",
"password": "ログインパスワード",
}
# URLを叩き、htmlを表示
res = session.post(url, data=info, cookies=cookie)
print(res.text)
ログイン先のソースが表示されれば成功です。
BeautifulSoupでデータを整形して、便利な収集ツールを作成してみてください。




