2011-08-25 17 views
5

używam tego kodu, aby uzyskać połączenie z mojego linku:Wyodrębnianie href z Beautiful Soup

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

link nie mają identyfikatora lub klasę czy cokolwiek innego, to po prostu klasyczny związek z atrybutem href.

Reakcja mojego skryptu jest:

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

Pomożesz mi uzyskać wartość href? Thx!

Odpowiedz

3

Dobra, to teraz działa z następującym kodem:

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

Linki wciąż odnoszą się do twojej zupy.find. Więc można zrobić coś takiego:

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

Cześć Chris, dzięki za odpowiedź. Próbowałem z twoim kodem: tym razem nie mam błędu, ale zawsze nie ma wartości dla href. Nie rozumiem, dlaczego. Spróbuję inaczej myślę, że ... – Koolen

+0

Dobra, to działa teraz z innym kodem. – Koolen

+0

@Koolen zechcesz wysłać do nas nowy kod? :) Ponadto, jeśli Chris odpowiedziałby na twój problem (przynajmniej do pewnego stopnia), byłoby miło od Ciebie [zaznaczyć to jako poprawną odpowiedź] (http://meta.stackexchange.com/questions/5234/how-does -Accepting-an-answer-work). – brandizzi