Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Extracting href with Beautiful Soup

I use this code to get acces to my link :

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

Link have no ID or class or whatever, it's just a classic link with a href attribute.

The response of my script is :

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

Can you help me to get href value ? Thx !

like image 844
Koolen Avatar asked Aug 25 '11 00:08

Koolen


2 Answers

Links is still referring to your soup.find. So you could do something like:

links = soup.find("span", { "class" : "hsmall" }).findNextSiblings('a')
for link in links:
    print link['href']
    print link.string
like image 158
Chris Pickett Avatar answered Oct 19 '22 18:10

Chris Pickett


Okay, it works now with following code :

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`
like image 4
Koolen Avatar answered Oct 19 '22 18:10

Koolen