2013-07-31 3 views
11

Ich bin neu in der Webprogrammierung und habe kürzlich begonnen, Python zur Automatisierung manueller Prozesse einzusetzen. Ich versuche, mich bei einer Website anzumelden, auf einige Dropdown-Menüs zu klicken, um Einstellungen auszuwählen, und einen Bericht auszuführen.Verwenden der Python-Requests-Bibliothek zum Navigieren auf Webseiten/Klicken Sie auf die Schaltflächen

Ich habe die gefeierten Anfragen Bibliothek gefunden: http://docs.python-requests.org/en/latest/user/advanced/#request-and-response-objects und habe versucht, herauszufinden, wie man es benutzt.

ich erfolgreich angemeldet haben BPBP Antwort auf dieser Seite in Verwendung: How to use Python to login to a webpage and retrieve cookies for later usage?

Mein Verständnis von „Klicken“ ein Knopf ist ein post() Befehl zu schreiben, die einen Klick nachahmt: Python - clicking a javascript button

Meine Frage (Ich bin neu in der Webprogrammierung und in dieser Bibliothek), so würde ich die Daten ziehen, die ich brauche, um herauszufinden, wie ich diese Befehle erstellen würde. Ich habe [RequestObject] .headers, .text, usw. untersucht. Alle Beispiele wären großartig.

Wie immer, vielen Dank für Ihre Hilfe!

EDIT ::: Um diese Frage konkreter zu machen, habe ich Probleme mit verschiedenen Aspekten einer Webseite zu interagieren. Das folgende Bild zeigt, was ich zu tun, tatsächlich versuchen:

Example

ich auf einer Web-Seite bin, der so aussieht. Es gibt ein Dropdown-Menü mit klickbaren Datumsangaben, die geändert werden können. Mein Ziel ist es, das Datum automatisch auf das neueste Datum zu ändern, auf "Speichern" und "Ausführen" zu klicken und den Bericht herunterzuladen, wenn er fertig ist.

+0

Ich hatte nicht viel von einer Richtung, um Dinge mit zu versuchen. Ich habe den Beitrag mit einer konkreteren Idee von dem, was ich versuche, bearbeitet. Daher glaube ich nicht, dass es nur ein guter Parser ist, um HTML zu extrahieren, sondern wie man verschiedene Informationen auf die Seite "posten" kann, um andere zu erreichen Aufgaben, vor allem "Klicken" Aufgaben – so13eit

+0

Check-out [Selen] (https://pypi.python.org/pypi/selenium), wenn Javascript in den Seiten ist, die Sie versuchen zu crawlen. – djas

+0

Ein möglicher Arbeitsablauf für einen Prozess wie diesen besteht darin, die fragliche Seite zu laden (mit requests.get()), alle dynamischen Formularelemente zu ermitteln, die Sie von der Seite abrufen müssen, und dann requests.post() zu verwenden Informationen, die Sie brauchen. Die Verwendung von Browser-Entwicklungstools kann äußerst nützlich sein, um genau zu sehen, was in der POST-Anfrage gesendet wird. – brechin

Antwort

7

Die einzige Lösung, die ich gefunden habe, ist Selenium. Wenn es nicht eine schwere Website javascript wäre, könnten Sie versuchen mechanize, aber dafür müssen Sie das Javascript und dann injizieren Javascript ... wie Selen macht.

Upside: Sie können Aktionen in Firefox aufzeichnen (mit Selen) und dann diese Aktionen nach Python exportieren. Der Nachteil ist, dass dieser Code ein Browserfenster zum Ausführen öffnen muss.

Verwandte Themen