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 soloobjeto web_element con el id especificado .

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

web_element[] website.getElementsByTagName( tag ) Devuelve una lista de objetos web_elementque 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 {"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...