PDA

Visualizza la versione completa : Scannerizzare pagina web e prendere informazione [es: googlebot]


Jacki93
17-09-2008, 11:59
Ciao, mi sto interessando a questa cosa:
come si crea un bot che scannerizza pagine web? C/C++???
Esistono sorgenti che fanno vedere un po' quello che fa uno spider web?

é molto complicata la realizzazione di esso?
grazie delle risposte e a nuove domande... :)

pallinopinco
17-09-2008, 12:44
Puoi farlo in C/C++, ma ci sono linguaggi (es. Python) che includono un parser HTML nella propria libreria standard.

Jacki93
17-09-2008, 13:24
puoi darmi qualche link a qualche documentazione su python in ita? é più facile sviluppare un programma del genre in python o in c++? sapendo che in un futuro dovro poi magari scrivere le info prese su un db....

devo documenatrmi su python perche ne so meno che niente, spero che non sia troppo difficile.. scusa la domanda che potra sembrarti stupida, ma che é un parser?

grazie... ciaoo..

pallinopinco
17-09-2008, 13:36
puoi darmi qualche link a qualche documentazione su python in ita?


http://www.python.it/

Ma visto che sei giovane impara fin da subito l'inglese, ti servirà MOLTO.



é più facile sviluppare un programma del genre in python o in c++?


In Python puoi farlo con pochissime righe di codice (http://www.ioprogrammo.it/python/problema_ciclo_spider-t15559.0.html;msg64270#msg64270) (l'esempio stampa gli URL presenti in una pagina):



from HTMLParser import HTMLParser
from urllib2 import urlopen

class parse_url(HTMLParser):
def __init__(self, url):
HTMLParser.__init__(self)
html = urlopen(url)
self.feed(html.read())

def handle_starttag(self, tag, attrs):
if tag == 'a' and attrs:
print "URL = %s" % attrs[0][1]

parse_url('http://www.google.com')


Con il C++ standard è una mazzata. :)



devo documenatrmi su python perche ne so meno che niente, spero che non sia troppo difficile


Se sai programmare in C/C++ allora Python è una vera passeggiata...



ma che é un parser?


Un parser (http://it.wikipedia.org/wiki/Parsing) è un programma che effettua l'analisi sintattica (o operazioni concettualmente analoghe) di dati in ingresso.

Jacki93
17-09-2008, 18:23
con python si puo anche salvare dati su un db mysql?

poi la cosa più importante:
esattamente, un bot cosa cerca in una pagina html? non analizza solo i meta tag no?

adesso vedos e c'é una guida qui su html.it di python... grazie...

pallinopinco
17-09-2008, 18:29
con python si puo anche salvare dati su un db mysql?


Ci sono pochissime cose che non puoi fare con Python, in compenso i compiti "normali" (interagire con un database è tra questi) risultano notevolmente semplificati rispetto alle soluzioni basate su C/C++.

Il tuo codice gira in locale o su un application/web server?



adesso vedos e c'é una guida qui su html.it di python.

Studia sulle guide presenti nella sezione principianti di www.python.it (http://www.python.it/). Poi potrai passare alla documentazione ufficiale ed ai libri in formato cartaceo.



esattamente, un bot cosa cerca in una pagina html? non analizza solo i meta tag no?


"Bot" è un termine generico, anche quello del post precedente è un "bot" (estrae dalla pagina gli indirizzi). Il "cosa cerca" è strettamente legato ai TUOI bisogni... Cosa vuoi realizzare?

Nota: realizzare un motore di ricerca non è una cosa banale, c'è tantissima teoria dietro.

Jacki93
17-09-2008, 20:25
Il codice per ora girera in locale...
Per ora vorrei relaizazre magari qualcosina che analizza una pagina web e mi salvi qualcuno dei suoi conteuti in un db mysql cosi che poi potro estrarli con php...

adesso mi leggo la guida principiante... una cosa, che programmi devo utilizzare per compilare il codice?

Grazie... ciaoo...

pallinopinco
17-09-2008, 20:34
Scarica il pacchetto Active Python (http://www.activestate.com/Products/activepython/index.mhtml), come editor ti suggerisco il semplice ma completo PyScripter (http://code.google.com/p/pyscripter/). Per realizzare interfacce grafiche usa wxPython (http://www.wxpython.org/).

Tobler
18-09-2008, 10:45
Originariamente inviato da pallinopinco
Scarica il pacchetto Active Python (http://www.activestate.com/Products/activepython/index.mhtml), come editor ti suggerisco il semplice ma completo PyScripter (http://code.google.com/p/pyscripter/). Per realizzare interfacce grafiche usa wxPython (http://www.wxpython.org/).

Python mi ha sempre attirato molto. Ho esperienza php e mediocrità in java e c/c++.
Volevo solo capire se wxPython sono solo una serie di classi per la gestione della grafica che estendono le funzionalità base di Python, il quale presumo lavori via terminale.

pallinopinco
18-09-2008, 12:26
Volevo solo capire se wxPython sono solo una serie di classi per la gestione della grafica che estendono le funzionalità base di Python,


wxPython è un wrapper per il toolkit wxWidgets. wxWidgets è una libreria per la creazione di interfacce grafiche (e non solo) abbastanza portabile e accessibile da diversi linguaggi: C++, Python, Perl, C#, ...

Per esempio questo codice Python+wxPython:



import wx
app = wx.PySimpleApp()
frame = wx.Frame(None, wx.ID_ANY, "Hello World")
frame.Show(True)
app.MainLoop()


crea un'applicazione funzionante:

http://img140.imageshack.us/img140/8413/helloka9.png



il quale presumo lavori via terminale


Cioè? Python è un linguaggio di programmazione, dunque "non lavora via terminale" come non lo fa nessun "linguaggio di programmazione". Al limite il suo interprete consiste in una shell, come un compilatore può essere utilizzato da command-line. :) Oltre all'implementazione ufficiale ne esistono altre, tra le più interessanti ti segnalo IronPython (supporta il .NET Framework) e PyPy.

Loading