n° 213
Maggio 2017
Aprile 26, 2017, 06:16:52 *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizia:
 
   Indice   Linux Windows Techassistance Gameassistance videogame hardware Aiuto Ricerca Agenda Downloads Accedi Registrati  


* Messaggi recenti
Messaggi recenti
Pagine: [1]   Vai giù
  Stampa  
Autore Discussione: web crawling con python  (Letto 776 volte)
0 utenti e 1 Utente non registrato stanno visualizzando questa discussione.
snoopyy
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 11


Mostra profilo E-mail
« inserita:: Gennaio 10, 2017, 08:31:52 »

ciao ragazzi, rieccomi e soprattutto buon anno a tutti, ora sto realizzando un web crawler, cioè un programma che dato un url mi controlli varie pagine web a partire da quello specificato, ma ho un po di problemi :
Codice:
import bs4
import requests
class LinkParser(HTMLParser):
 def estrapola_sorgente(url):
    if 'http://' in url:
        sorgente = requests.get(url).text
        return(sorgente)
    else:
        return("L'url non è valido")
    
def estrapola_h1(sorgente):
    soup = bs4.BeautifulSoup(sorgente)
    elenco = soup.findAll('h1')
    if elenco:
        for a in elenco:
            print(a)
    else:
        print("Non ci sono H1 in questa pagina")
 
lista_siti = [
    'http://www.wikipedia.it',
    ]
 
for sito in lista_siti:
    sorgente = estrapola_sorgente(sito)
    print('Elenco degli H1 di ' + sito)
    estrapola_h1(sorgente)
    print()
g = open ("maus.txt","w")
g.write(sito.read())
soup.close()
elenco.close()
sorgent.close()
sito.close()
estrapola_sorgente.close()
estrapola_h1.close()
g.close()
lista_siti.close()

 
il codice è questo ma mi segnala vari problemi il primo è che la classe linkparser non esiste, forse l'ho scritta male non so aiutatemi per favore
Registrato
michele.p
Administrator
Full Member
*****

Karma: +6/-2
Scollegato Scollegato

Messaggi: 508


Mostra profilo
« Risposta #1 inserita:: Gennaio 10, 2017, 12:13:17 »

Non ho provato il sorgente quindi non conosco l'errore specifcio che ti viene riportato, ma così "a lume di naso"  Sorriso , nell'istanziare una classe non devi riportare il nome della classe stessa?

Nel tuo caso alla variabile sorgente dov'è l'istanza della classe? È  riportato il nome del metodo, ma non quello della classe.
Registrato
snoopyy
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 11


Mostra profilo E-mail
« Risposta #2 inserita:: Gennaio 14, 2017, 05:08:14 »

Non ho provato il sorgente quindi non conosco l'errore specifcio che ti viene riportato, ma così "a lume di naso"  Sorriso , nell'istanziare una classe non devi riportare il nome della classe stessa?

Nel tuo caso alla variabile sorgente dov'è l'istanza della classe? È  riportato il nome del metodo, ma non quello della classe.
ciao Michele, non ho capito il problema, io ho visto un tutorial su internet e ho fatto il copia ed incolla della classe linkparser però mi da il problema, come lo posso risolvere??
Registrato
michele.p
Administrator
Full Member
*****

Karma: +6/-2
Scollegato Scollegato

Messaggi: 508


Mostra profilo
« Risposta #3 inserita:: Gennaio 15, 2017, 07:20:20 »

Riporta il link a questo tutorial affinché gli si possa dare un'occhiata. :-)
Registrato
snoopyy
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 11


Mostra profilo E-mail
« Risposta #4 inserita:: Gennaio 16, 2017, 10:42:18 »

Riporta il link a questo tutorial affinché gli si possa dare un'occhiata. :-)
http://eternalcuriosity.it/come-costruire-uno-web-scraper-personalizzato-con-python
ecco
Registrato
michele.p
Administrator
Full Member
*****

Karma: +6/-2
Scollegato Scollegato

Messaggi: 508


Mostra profilo
« Risposta #5 inserita:: Gennaio 16, 2017, 04:36:31 »

E infatti, come era intuibile, non c'è una classe, ma "solo" una funzione con quel nome.  Sorriso

Non so cosa stai seguendo per il Python, ad ogni modo, se sei interessato, puoi iniziare da qui (devi registrarti per scaricarlo in formato pdf):

http://punto-informatico.it/PILibri/Dettaglio.aspx?id=235

Quel libro scorre in maniera fantastica.  Sorriso
Oltremodo l'autore è uno dei "veterani"  Ghigno di questo forum.  Sorriso

Se non ricordo male questa era/è il numero dove il libro è stato allegato:  Sorriso

http://arretrati.edmaster.it/index.php?sez=&cat=3&prod=4&num=122

Registrato
snoopyy
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 11


Mostra profilo E-mail
« Risposta #6 inserita:: Gennaio 16, 2017, 06:09:12 »

E infatti, come era intuibile, non c'è una classe, ma "solo" una funzione con quel nome.  Sorriso

Non so cosa stai seguendo per il Python, ad ogni modo, se sei interessato, puoi iniziare da qui (devi registrarti per scaricarlo in formato pdf):

http://punto-informatico.it/PILibri/Dettaglio.aspx?id=235

Quel libro scorre in maniera fantastica.  Sorriso
Oltremodo l'autore è uno dei "veterani"  Ghigno di questo forum.  Sorriso

Se non ricordo male questa era/è il numero dove il libro è stato allegato:  Sorriso

http://arretrati.edmaster.it/index.php?sez=&cat=3&prod=4&num=122


ho scaricato il libro e ho dato una lettura veloce, ma di web crawling o argomenti vicini non ne ho visti cmq nel capitolo delle classi non ce html.parser
Registrato
michele.p
Administrator
Full Member
*****

Karma: +6/-2
Scollegato Scollegato

Messaggi: 508


Mostra profilo
« Risposta #7 inserita:: Gennaio 16, 2017, 06:33:41 »

No, nel libro non c'è il web crawling.
Il libro è un buon inizio (se unito ad altri libri) con il Python.
L'ho suggerito perché non so a che livello sei con il Python, se stai iniziando ora, se conosci un minimo di sintassi etc.  Sorriso
Registrato
snoopyy
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 11


Mostra profilo E-mail
« Risposta #8 inserita:: Gennaio 19, 2017, 05:36:22 »

No, nel libro non c'è il web crawling.
Il libro è un buon inizio (se unito ad altri libri) con il Python.
L'ho suggerito perché non so a che livello sei con il Python, se stai iniziando ora, se conosci un minimo di sintassi etc.  Sorriso
di python consoco molte cose ma di certo non sono un esperto, dato che non conosco molte funzioni ma me  la cavo con la logica, proprio perchè ho fatto programmazione logica per un po di anni. Comunque se ho dei problemi con il web crawling mi puoi aiutare in futuro??
Registrato
michele.p
Administrator
Full Member
*****

Karma: +6/-2
Scollegato Scollegato

Messaggi: 508


Mostra profilo
« Risposta #9 inserita:: Gennaio 19, 2017, 06:36:08 »

Si certo, questo è un forum. Chi può rispondere aiuta. :-)

Nel caso specifico il sorgente da utilizzare è quello dell'immagine che ti ho allegato in questa risposta:

http://www.ioprogrammo.it/index.php?topic=26608.msg96777#msg96777

L'hai provato? Funziona?

Citazione
di python consoco molte cose ma di certo non sono un esperto, dato che non conosco molte funzioni ma me  la cavo con la logica, proprio perchè ho fatto programmazione logica per un po di anni. Comunque se ho dei problemi con il web crawling mi puoi aiutare in futuro??
Registrato
Pagine: [1]   Vai su
  Stampa  
 
Vai a:  

Copyright © 2017 Edizioni Master SpA. p.iva : 02105820787

Tutti i diritti di proprietà letteraria e artistica riservati. - Privacy



powered by Simple Machines