无法从<a> tags using BS4</a>中提取出href值

时间:2013-01-07 13:02:17

标签: python beautifulsoup

我使用BS4进行网页抓取,并使用以下html

<a style="display:inline; position:relative;" href="

                                      /aems/file/filegetrevision.do?fileEntityId=8120070&cs=LU31NT9us5P9Pvkb1BrtdwaCrEraskiCJcY6E2ucP5s.xyz">
                                Screenshot.docx                      </a>

现在如何使用BS4获取href的值,无法获得。你能帮忙吗?

谢谢,

2 个答案:

答案 0 :(得分:3)

这不是诀窍吗?

for a in soup.find_all('a', href=True):
    print a['href']

如果您需要,可以在find_all中使用attrs:

soup.find_all("div", {"style": "display:inline; position:relative;"})

去除空格并使链接绝对:

import urlparse
urlparse.urljoin(url, a['href'].strip())

答案 1 :(得分:2)

for a in soup.find_all('a', {"style": "display:inline; position:relative;"}, href=True):
    href = a['href'].strip()
    href = "http://example.com" + href
print(href)

'http://example.com/aems/file/filegetrevision.do?fileEntityId=8120070&cs=LU31NT9us5P9Pvkb1BrtdwaCrEraskiCJcY6E2ucP5s.xyz'

内置函数strip()在这里非常有用。 :)