miércoles, 24 de noviembre de 2010

Pywc 0.4

Hoy estrenamos nueva versión de Pywc:
  • Corregido un bug que incluía lo que sigue a "?" y "#" como parte de una URL relativa, vamos que con una URL como "blablabla.com/yoquese.php?asd=jejeje/123" , la ruta base antes quedaría en "blablabla.com/yoquese.php?asd=jejeje/" y ahora en "blablabla.com/" (como tiene que ser). 
  • Además se añadió un método para descargar datos que no se tienen que parsear (para imágenes o archivos binarios, por ejemplo).
 El código es este: pywc04.zip

Entonces la referencia quedaría así:


crawler( proxies )
Crea un objeto crawler, si se especifica una lista de proxies como se hace con urllib .

crawler.download( url, archivo de salida, tamaño del buffer )
Descarga una url en el archivo de salida, opcionalmente se puede especificar el tamaño del buffer (por defecto 4096 bytes).

website crawler.crawlsite( url, guardar raw )
Parsea una url y devuelve un archivo de tipo website, si opcionalmente se le añade guardar raw como true guarda el archivo original en el atributo website.raw .



website( contenido, url )
Crea un objeto website con contenido como fuente y una dirección url (esta se usa para los atributos de los enlaces), crawler.crawlsite devuelve un objeto de este tipo ya inicializado.

string website.title
Título de la página web.

web_element[] website.element_list
Lista de etiquetas y texto de la página web, objetos web_element .

web_element website.getElementById( id )
Devuelve un solo objeto web_element con el id especificado .

web_element[] website.getElementsByName( nombre )
Devuelve una lista de objetos web_element con el atributo name especificado .

web_element[] website.getElementsByTagName( tag )
Devuelve una lista de objetos web_element que corresponden con el tag especificado (como "a" para los enlaces) .



web_element( contenido, guardar raw )
Crea un objeto web_element a partir del contenido, si se especifica guardar_raw (opcional) como true guarda el contenido en web_element.raw .


boolean web_element.tag
True si el elemento es una etiqueta o False si es texto .

string web_element.tag_type
Tipo de tag del objeto .

boolean  web_element.closed
Si la etiqueta esta contenida en si misma (como un img o un input )

boolean web_element.closing
Si es una etiqueta de cerrado .

{} web_element.property
Atributos de la etiqueta, por ejemplo <a href="http://example.org" id="ejemplo">
{"href":"http://example.org", "id":"ejemplo"} .

Si es solo texto, este se especifica en el atributo web_element.text .

Si es una etiqueta de enlace ( "a" ) y se obtiene a partir de un objeto website , además tiene estos atributos .

string web_element.range
"Rango" del enlace local para local, foreign para externos, javascript para triggers y invalid si no es un enlace válido.

string web_element.absolute
Dirección absoluta a la que apunta el enlace.

A ver si para la próxima versión consigo un soporte HTML DOM completo...

No hay comentarios:

Publicar un comentario