2010-08-20 12 views
13

Quindi mio fratello voleva che scrivessi un web crawler in Python (autodidatta) e conosco C++, Java e un po 'di html. Sto usando la versione 2.7 e sto leggendo la libreria Python, ma ho alcuni problemi 1. httplib.HTTPConnection e request concetto per me è nuovo e non capisco se scarica uno script html come cookie o un'istanza. Se fai entrambi, ottieni la fonte per una pagina del sito web? E quali sono alcune parole che avrei bisogno di sapere per modificare la pagina e restituire la pagina modificata.Python Web Crawler e codice sorgente "get" sorgente

Proprio per lo sfondo, ho bisogno di scaricare una pagina e sostituire qualsiasi img con quelli che ho

e sarebbe bello se voi mi potrebbe dire la tua opinione su 2.7 e 3.1

+0

Quale modulo o libreria Python stai usando? Di cosa parla questo? –

+0

@David - Ho corretto le mie specifiche – danutenshu

risposta

37

Usa Python 2.7, al momento ha più librerie di terze parti. (Modifica: vedere di seguito).

Si consiglia di utilizzare il modulo stdlib urllib2, che consente di ottenere facilmente risorse Web. Esempio:

import urllib2 

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

Per l'analisi del codice, dare un'occhiata al BeautifulSoup.

BTW: che cosa esattamente vuoi fare:

Proprio per lo sfondo, ho bisogno di scaricare una pagina e sostituire qualsiasi img con quelli che ho

Edit: E '2014 ora, la maggior parte delle librerie importanti sono state portate in porto, e dovresti sicuramente usare Python 3 se puoi. python-requests è una libreria di alto livello molto bella che è più facile da usare rispetto a urllib2.

+0

solo per nitpick, ciò che si ottiene da 'urlopen' non è un oggetto' request', è un oggetto di risposta. – aaronasterling

+0

Oops. Grazie. – leoluk

+0

come se vedi un logo google, sostituirlo con il logo Mcdonalds.o se vai su google, non vedi nient'altro che una certa immagine a tua scelta – danutenshu

0

La prima cosa è necessario leggere il numero HTTP spec che spiegherà cosa ci si può aspettare di ricevere sul filo. I dati restituiti all'interno del contenuto saranno la pagina Web "renderizzata", non la fonte. La fonte potrebbe essere un JSP, un servlet, uno script CGI, in breve, qualsiasi cosa, e non hai accesso a questo. Ottieni solo l'HTML che il server ti ha inviato. Nel caso di una pagina HTML statica, allora sì, vedrai la "fonte". Ma per qualsiasi altra cosa vedi l'HTML generato, non la fonte.

Quando dici modify the page and return the modified page cosa intendi?

+0

per tutti i file img su una determinata pagina, sostituisco con uno nuovo – danutenshu

+0

come se vedi un logo google, sostituisci con il logo di Mcdonalds – danutenshu

+0

il link che mi hai inviato è molto grande. Quali sono i minimi che dovrei leggere – danutenshu