Ich habe mich bei Qiita als Einführung in das Web-Scraping angemeldet. Wenn Sie auf die Schaltfläche "Anmelden" klicken, werden anscheinend die folgenden Daten an https://qiita.com/login gesendet.
--utf-8: Behoben bei ✓ --authenticity_token: Es scheint ausgegeben zu werden, wenn Sie eine Sitzung einrichten:
Alles, was Sie brauchen, um in Ihren Code zu gelangen, ist authenticity_token. Ich habe versucht, es mit der schönen Suppe zu bekommen, die ich gerade gelernt habe.
def get_authenticity_token(session, login_url):
response = session.get(login_url)
response.encoding = response.apparent_encoding
bs = BeautifulSoup(response.text, 'html.parser')
authenticity_token = str(bs.find(attrs={'name':'authenticity_token'}).get('value'))
return authenticity_token
Wenn Sie sich tatsächlich anmelden, ist dies wie folgt.
import requests
import os
from bs4 import BeautifulSoup
user_name = 'user_name'
user_password = 'user_password'
login_url = 'https://qiita.com/login'
login_form = {
'utf-8':'✓',
'authenticity_token':'token',
'identity':user_name,
'password':user_password
}
def get_authenticity_token(session, login_url):
response = session.get(login_url)
response.encoding = response.apparent_encoding
bs = BeautifulSoup(response.text, 'html.parser')
authenticity_token = str(bs.find(attrs={'name':'authenticity_token'}).get('value'))
return authenticity_token
if __name__ == '__main__':
session = requests.Session()
authenticity_token = get_authenticity_token(session, login_url)
login_form['authenticity_token'] = authenticity_token
session.post(login_url, login_form)
Recommended Posts