Fehler bei der Verwendung von Python / mechanize select_form ()?
-
20-09-2019 - |
Frage
Ich versuche, einige Daten von einer Website verschrotten. Die Skripte ich zu schreiben versuchen, sollte den Inhalt der Seite erhalten:
http://www.atpworldtour.com/Rankings/Singles.aspx
Wenn der Benutzer simulieren jede Option für weitere Entwicklung und die Termine und Simulieren Klick auf Go gehen Trog dann nach dem Abrufen von Daten sollte die Back-Funktion verwenden.
Im Moment habe ich nur versucht, diese Option wählen für zusätzliche Stehend:
<option value="101" >101-200</option>
Hier ist mein (nicht zufrieden) Versuch, um zu versuchen, dies zu tun:
from mechanize import Browser
from BeautifulSoup import BeautifulSoup
import re
import urllib2
br = Browser();
br.open("http://www.atpworldtour.com/Rankings/Singles.aspx");
br.select_form(nr=0);
br["r"] = "101";
response = br.submit();
es jedoch nicht nur auf der select_form (nr = 0), die die erste Form der Auswahl sein sollte.
Dies ist das Protokoll von Python zurückgegeben:
>>> from mechanize import Browser
>>>
>>> from BeautifulSoup import BeautifulSoup
>>> import re
>>> import urllib2
>>>
>>>
>>>
>>> br = Browser();
>>> br.open("http://www.atpworldtour.com/Rankings/Singles.aspx");
<response_seek_wrapper at 0x311bb48L whose wrapped object = <closeable_response
at 0x311be88L whose fp = <socket._fileobject object at 0x0000000002C94408>>>
>>> br.select_form(nr=0);
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "build\bdist.win-amd64\egg\mechanize\_mechanize.py", line 505, in select_
form
File "build\bdist.win-amd64\egg\mechanize\_html.py", line 546, in __getattr__
File "build\bdist.win-amd64\egg\mechanize\_html.py", line 559, in forms
File "build\bdist.win-amd64\egg\mechanize\_html.py", line 228, in forms
mechanize._html.ParseError
Ich konnte keine richtige Erklärung aller Funktionen in der mechanize Homepage. Kann jemand mich entweder für Formulare und Mechanize oder Hilfe mich mit zu diesem bestimmten Punkt zu einem richtigen Tutorial zeigen?
Anthony
Lösung
Ich glaube, Sie die Bibliothek korrekt verwenden, aber der Parser scheint Probleme zu haben mit dieser bestimmten Seite. Ich bin mit der Bibliothek in der gleichen Art und Weise auf einer anderen Seite ( " http://flashcarddb.com/login „), und es gibt keinen Fehler machen.
Andere Tipps
Ich lief in das gleiche Problem. Die Seite wurde ich Zugriff auf W3C-Validierung übergeben, so dass ich nicht glaube, es ist ein Markup Problem war. html ordentlich beschwerte sich jedoch, dass die Seite hatte eine innerhalb a. Sobald ich, dass fest, mechanize zu arbeiten begann.
Auch sah ich eine Antwort auf dieses Problem auf einer Mailingliste. Ich möchte nur zu beachten, dass das Hinzufügen Fabrik = mechanize.RobustFactory (), um mechanize.Browser () das Ergebnis nicht ändern.
Clue: definieren Sie mehr über Ihre mechanize.Browser ()