Scusate,
andiamo per ordine, ho visto l'esempio che mi hai postato e non รจ quello che mi serve.
Vi posto queste righe di codice che ho fatto:

url = sys.argv[1]

urlparts = urlparse.urlsplit(url)
rootUrl = urlparts[0] + "://" + urlparts[1]
protocol = urlparts[0]
server = urlparts[1]
path = urlparts[2]
query = urlparts[3]
fragment = urlparts[4]

contents = urllib2.urlopen(rootUrl).read()

lista = []

for u in htmldata.urlextract(contents, url):
  if u.tag_name == 'a':
   urlparts2 = urlparse.urlsplit(u.url)
   rootUrl2 = urlparts2[0] + "://" + urlparts2[1]
   if url.find(rootUrl2) == 0:
       lista.append(u.url)
       print u.url

print "lista totale: ",
print len(lista)

Risultato:

python spider.py http://www.google.it
http://www.google.it/url?sa=p&pref=ig&pval=3&q=http://www.google.it/ig%3Fhl%3Dit&usg=__G4FoAkG2BgZXFScY56sHYkwh_us=
http://www.google.it/intl/it/options/
http://www.google.it/advanced_search?hl=it
http://www.google.it/preferences?hl=it
http://www.google.it/language_tools?hl=it
http://www.google.it/intl/it/ads/
http://www.google.it/services/
http://www.google.it/intl/it/about.html
lista totale:  8

ora come faccio a dirgli che per ogni link trovato in lista[] deve entrare di nuovo ed eseguire lo stesso processo???

Grazie per l'aiuto

Valentino Volonghi aka Dialtone ha scritto:
On Sun, 18 Mar 2007 22:59:28 +0100, "A.recca" <[EMAIL PROTECTED]> wrote:

Ad esempio ho scaricato dalla rete questo script....

Mi sembra orribile quello script...

import pprint

from twisted.internet import reactor
from twisted.internet import defer
from twisted.web import client

import BeautifulSoup as bsoup

def hrefs(page):
return list(anchor.get('href') for anchor in bsoup.BeautifulSoup(page).findAll('a'))

def crawler(urls):
   deferreds = []
   for url in urls:
       d = client.getPage(url)
       d.addCallback(lambda page: (url, hrefs(page)))
       deferreds.append(d)
   return defer.DeferredList(deferreds)

urls = [
   "http://www.twisted.it/";,
   "http://www.twistedmatrix.com/";,
   "http://www.yahoo.com";,
   "http://www.digg.com";,
   "http://www.divmod.org/";,
   "http://www.virgilio.it";,
   "http://www.vodafone.it";,
   "http://www.google.com";,
]

crawler(urls).addCallback(pprint.pprint).addBoth(lambda _: reactor.stop())

reactor.run()

Come ti ho detto si usa la programmazione asincrona, se non sai cosa sia l'ideale non e` ripetere la domanda uguale a prima aggiungendo piu` linee ma cercare cosa sia la programmazione asincrona.
------------------------------------------------------------------------

_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Reply via email to