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

War es hilfreich?

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 ()

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top