2017-12-06 4 views
0

Im Versuch zu tun, um ein Forum zu tun kratzen, aber ich kann den Login-Teil lösen, und das Teil mag ich ist Schaben zu machen, um nur verfügbar, wenn die Benutzer loggt sich im Forum ein, das Forum ist ein Copyright-Web von phpBB, ich kann dir den Link nicht geben, weil es ein lokales Web ist. Ich habe die Authentifikation mit versucht:Des Versuch, ein Forum mit Python zu Scraping, aber idk, wie der Login-Skript

url = 'http://forum.com' #not real one XD 

pet = requests.get(url, auth=HTTPBasicAuth('user', 'passw'), verify=False) 

auch: soup = BeautifulSoup(pet.content) print(soup.prettify())

IDK, welche Art von Authentifizierung des Forum hat (Basic, Digest,:

pet =requests.get(url, auth=HTTPDigestAuth('user', 'pass'), verify=False) 

die Informationen i BeautifulSoup verwenden, um zu sehen. ..) Wenn ich diese Befehle ausführen, gibt es die Informationen der Forumsseite ohne Login zurück, aka, das Login-Ding funktioniert nicht. i setzen die Verify=False, denn wenn ich nicht, dann ein SSL-Fehler es erhöhen. Also, könnte mir jemand sagen wie ich das machen kann, wenn es mit dem Anfragen Modul besser geht, aber ich kann andere akzeptieren.

Dies ist das Stück HTML-Code der Login-Seite, wo der Benutzer und Passworteingaben sind.

<dl> 
     <dt> 
     <label for="username"> 
     Nombre de Usuario: 
     </label> 
     </dt> 
     <dd> 
     <input class="inputbox autowidth" id="username" name="username" size="25" tabindex="1" type="text" value=""/> 
     </dd> 
    </dl> 
    <dl> 
     <dt> 
     <label for="password"> 
     Contraseña: 
     </label> 
     </dt> 
     <dd> 
     <input autocomplete="off" class="inputbox autowidth" id="password" name="password" size="25" tabindex="2" type="password"/> 
     </dd> 
     <dd> 
     <a href="./ucp.php?mode=sendpassword"> 
     Olvidé mi contraseña 
     </a> 
     </dd> 
    </dl> 
    <dl> 
     <dd> 
     <label for="autologin"> 
     <input id="autologin" name="autologin" tabindex="4" type="checkbox"/> 
     Recordar 
     </label> 
     </dd> 
     <dd> 
     <label for="viewonline"> 
     <input id="viewonline" name="viewonline" tabindex="5" type="checkbox"/> 
     Ocultar mi estado de conexión en esta sesión 
     </label> 
     </dd> 
    </dl> 
    <input name="redirect" type="hidden" value="./search.php?search_id=newposts"/> 
    <dl> 
     <dt> 
     </dt> 
     <dd> 
     <input name="sid" type="hidden" value="b48ad769e2eab979294621d07e3ef19d"/> 
     <input class="button1" name="login" tabindex="6" type="submit" value="Identificarse"/> 
     </dd> 
    </dl> 

ich hinzufügen muss, wenn ich eine Anfrage für die Seite machen, dass ich Schrott (die, die loged in, es sei denn im erscheinen tut) machen wollen, die status_code i 200, aber die html kehrt ist das auf der Login-Seite.

+1

Mögliche Duplikate von [Mit python auf der Website anmelden] (https://stackoverflow.com/questions/8316818/login-to-website-using-python) –

Antwort

0

Wenn Sie eine Auth zu einer Seite machen, schicken Sie neugierig die Anfragen nicht auf die Login-Seite, Sie leitet die Anfragen auf die Seite, die Sie verwerfen möchten (falls es Basic outh) Probieren Sie es aus.

+0

danke für deinen Kommentar, ich versuche das und die Informationen, die ich habe ist das auf der Anmeldeseite, es muss eine andere Art von Auth sein. – luisiacc

+0

Versuchen Sie, die Anfragen mit Postboten zu stellen, damit Sie bestätigen können, ob es das ist oder nicht. –

+0

funktioniert es auch nicht mit Postboten. – luisiacc