2010-08-20 20 views
13

Así que mi hermano quería que escribiera un rastreador web en Python (autodidacta) y conozco C++, Java y un poco de html. Estoy usando la versión 2.7 y leyendo la biblioteca de Python, pero tengo algunos problemas 1. httplib.HTTPConnection y request concepto para mí es nuevo y no entiendo si descarga una secuencia de comandos html como cookie o una instancia. Si haces ambas cosas, ¿obtienes la fuente de una página web? Y cuáles son algunas palabras que necesitaría saber para modificar la página y devolver la página modificada.Python Web Crawlers y "obtener" código fuente html

Sólo para el fondo, tengo que descargar una página y reemplazar cualquier img con los que tengo

y sería bueno si ustedes me podría decir su opinión sobre los 2,7 y 3,1

+0

¿Qué módulo o biblioteca de Python está utilizando? ¿De qué se trata este 'get' del que hablas? –

+0

@David - He reparado mis especificaciones – danutenshu

Respuesta

37

Utilice Python 2.7, tiene más libs de terceros en este momento. (Edición: ver a continuación).

Le recomiendo que use el módulo stdlib urllib2, le permitirá obtener cómodamente recursos web. Ejemplo:

import urllib2 

response = urllib2.urlopen("http://google.de") 
page_source = response.read() 

Para analizar el código, echar un vistazo a BeautifulSoup.

Por cierto: ¿qué es exactamente lo que quiere hacer:

Sólo para el fondo, tengo que descargar una página y reemplazar cualquier img con los que tengo

Editar: Es 2014 ahora, la mayoría de las bibliotecas importantes se han portado, y definitivamente debes usar Python 3 si puedes. python-requests es una muy buena biblioteca de alto nivel que es más fácil de usar que urllib2.

+0

solo para identificar, lo que obtienes de 'urlopen' no es un objeto' request', es un objeto de respuesta. – aaronasterling

+0

¡Vaya! Gracias. – leoluk

+0

si ve un logotipo de Google, reemplace con el logotipo de Mcdonalds.o si va a imágenes de Google, no ve más que una imagen determinada de su elección – danutenshu

0

Lo primero lo que necesita hacer es leer el HTTP spec que explicará lo que puede esperar recibir a través del cable. Los datos devueltos dentro del contenido serán la página web "renderizada", no la fuente. La fuente podría ser una JSP, un servlet, una secuencia de comandos CGI, en resumen, casi cualquier cosa, y usted no tiene acceso a eso. Solo obtiene el código HTML que el servidor le envió. En el caso de una página HTML estática, entonces sí, verá la "fuente". Pero para cualquier otra cosa, ve el HTML generado, no la fuente.

Cuando dice modify the page and return the modified page ¿a qué se refiere?

+0

para todos los archivos img en una página determinada, reemplace por una nueva – danutenshu

+0

como si ve un logotipo de google, reemplace con el logotipo de Mcdonalds – danutenshu

+0

El enlace que me ha enviado es muy grande. Cuáles son los mínimos que debería leer – danutenshu

Cuestiones relacionadas