Je me suis connecté à qiita en guise d'introduction au scraping Web. Lorsque vous cliquez sur le bouton de connexion, il semble que les données suivantes soient envoyées à https://qiita.com/login.
--utf-8: fixé à ✓ --authenticity_token: il semble être émis lorsque vous configurez une session: --identité: adresse e-mail ou identifiant d'utilisateur --password: mot de passe
Donc, tout ce dont vous avez besoin pour entrer votre code est authenticity_token. J'ai essayé de l'obtenir en utilisant la belle soupe dont je viens de me souvenir.
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
Lorsque vous vous connectez, ce sera comme suit.
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