Pregunta

Estoy tratando de desechar algunos datos de un sitio web. Las secuencias de comandos que estoy tratando de escribir, deben obtener el contenido de la página:

http://www.atpworldtour.com/Rankings/Singles.aspx

En caso de simular que el usuario va a través de todas las opciones adicionales Tabla de posiciones y las fechas y simular clic en Ir a continuación, después de ir a buscar los datos debe utilizar la función de atrás.

Por ahora he estado tratando de simplemente seleccione esta opción para el Standing adicional:

            <option value="101" >101-200</option>

Aquí está mi (mala) intento de tratar de hacer esto:

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

Sin embargo sólo falla en el select_form (nr = 0) que debería ser la selección de la primera forma.

Este es el registro devuelto por Python:

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

No pude encontrar una explicación adecuada de todas las funciones en la página mecanizar casa. Puede cualquier persona, ya sea que me señale un tutorial adecuado para el uso de formas y Mecanice o me ayude en este tema en particular?

Anthony

¿Fue útil?

Solución

Creo que está utilizando la biblioteca correctamente, pero el analizador parece estar teniendo problemas con esa página en particular. Estoy usando la biblioteca de la misma manera en otra página ( " http://flashcarddb.com/login ") y que no plantea un error.

Otros consejos

Me acabo de encontrar con el mismo problema. La página que estaba accediendo a pasar la validación del W3C, así que no creía que era un problema de marcado. Sin embargo, html ordenada quejado de que la página tenía un marco a. Una vez que me fijo, mecanizar empezado a trabajar.

Además, vi una respuesta a este problema en una lista de correo. Sólo me gustaría señalar que la adición de fábrica = mechanize.RobustFactory () para mechanize.Browser () no cambió el resultado.

Una pista: definir más acerca de su mechanize.Browser ()

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top