2017-03-02 1 views
0

Je vous demande de bien vouloir me corriger ce que je me trompe ici. Le code html que j'obtiens est à nouveau une page avec un formulaire de connexion. Ce que je voulais faire ici est d'obtenir un jeton pendant une session et ensuite de l'utiliser pour se connecter. Ce que je prévois de faire est d'utiliser bs4 pour collecter des données.Connectez-vous au site Web, puis les données de rebut web (Python)

import bs4 
import requests 

session = requests.session 
with requests.Session() as s: 
    url = 'https://www.planetplus.pl/' 
    res = requests.get(url) 
    data = res.text 
    soup = bs4.BeautifulSoup(data, 'lxml') 
    token = soup.find_all('input', attrs={'name': '__RequestVerificationToken'})[0]['value'] 
    print(token) 
    payload = {'UserName': 'xxx', 'Password': 'yyy', 
       '__RequestVerificationToken': token} 
    p = s.post(url, data=payload) 
    r = s.get('https://www.planetplus.pl/moje-konto-cashback') 
    print(r.text) 

lien Site Web: https://www.planetplus.pl/

Eh bien, pour être honnête, je suis un débutant, donc si vous pouviez me corriger et même élaborer, suggérer comment le faire le mieux, ce serait génial!

En outre, combien la procédure est différente pour le site Web http://www.exsite.pl/, parce que je supprime la partie de jeton dans le dictionnaire des pouvoirs de connexion et aussi la sortie est le code html de la page d'accès restreint. Et ne juge pas les sites Web, d'abord trouvés avec différents types de connexion, au moins différent pour moi;)

import requests 

with requests.Session() as s: 
    session = requests.session 
    url = 'http://exsite.pl//' 
    payload = {'login_name': 'xxx', 'login_password': 'yyy!'} 
    p = s.post(url, data=payload) 
    #print(p.text) 
    r = s.get('http://www.exsite.pl/filmy_video_movies/filmy-dvdrip-brrip/1378773-ukryte-piekno-collateral-beauty-2016-plsubbed480pbrripxvidac3-krt-napisy-pl.html') 
    print(r.text) 

Répondre

0

Exemple de travail pour https://www.planetplus.pl/

import bs4 
import requests 


BASE_URL = 'https://www.planetplus.pl/' 
LOGIN_URL = BASE_URL + 'logowanie' 


with requests.Session() as session: 
    res = session.get(BASE_URL) 

    soup = bs4.BeautifulSoup(res.text, 'lxml') 
    token = soup.find_all('input', attrs={'name': '__RequestVerificationToken'})[0]['value'] 
    payload = {'UserName': '[email protected]', 'Password': 'qwerty', 
       '__RequestVerificationToken': token} 

    session.post(LOGIN_URL , data=payload) 
    res = session.get(BASE_URL) 
    print(res.text) 
+0

Prenez attention sur l'objet de la session. Si vous souhaitez utiliser la même session, vous devez utiliser le même objet de session. –

+0

Faites également attention comment j'ai déplacé les variables BASE_URL et LOGIN_URL. Vous devriez faire la même chose pour le code répété. –

+0

Je peux sembler stupide, mais cela fonctionne maintenant. 'BASE_URL = 'http://www.exsite.pl/' LOGIN_URL = URL_BASSE avec requests.Session() en tant que session: res = session.get (URL_BASE) payload = {'login_name': 'xxx', 'login_password': '! xxx'} session.post (URL_BASE, données = données utiles) res = session.get ('http://www.exsite.pl/') res = res.text print (res) ' – Sebastian