2011-08-25 4 views
5

io uso questo codice per ottenere accesso al mio link:Estrazione href con Beautiful Soup

links = soup.find("span", { "class" : "hsmall" }) 
links.findNextSiblings('a') 
for link in links: 
    print link['href'] 
    print link.string 

link non hanno alcun ID o classe o qualsiasi altra cosa, è solo un collegamento classico con un attributo href.

La risposta del mio script è:

print link['href'] 
TypeError: string indices must be integers 

mi potete aiutare a ottenere il valore href? Thx!

risposta

3

Va bene, funziona ora con seguente codice:

linkSpan = soup.find("span", { "class" : "hsmall" }) 
link = [tag.attrMap['href'] for tag in linkSpan.findAll('a', {'href': True})] 
for lien in link: 
    print "LINK = " + lien` 
8

I collegamenti si riferiscono ancora alla tua zuppa. Così si potrebbe fare qualcosa di simile:

links = soup.find("span", { "class" : "hsmall" }).findNextSiblings('a') 
for link in links: 
    print link['href'] 
    print link.string 
+0

Ciao Chris, grazie per la risposta. Ho provato con il tuo codice: non ho errori questa volta, ma sempre nessun valore anche per href. Non capisco perché. Proverò un altro modo che penso .. – Koolen

+0

Ok, ora funziona con un altro codice. – Koolen

+0

@Koolen ti dispiacerebbe pubblicare il tuo nuovo codice? :) Inoltre, se Chris ha risolto il problema (almeno in una certa misura) sarebbe carino da parte sua [contrassegnarlo come la risposta corretta] (http://meta.stackexchange.com/questions/5234/how-does -accepting-an-risposta-lavoro). – brandizzi