用 Beautiful Soup 提取 href

Posted

技术标签:

【中文标题】用 Beautiful Soup 提取 href【英文标题】:Extracting href with Beautiful Soup 【发布时间】:2011-11-03 06:40:10 【问题描述】:

我使用此代码来访问我的链接:

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

链接没有 ID 或类之类的,它只是一个带有 href 属性的经典链接。

我的脚本的响应是:

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

你能帮我获得href值吗? 谢谢!

【问题讨论】:

【参考方案1】:

Links 仍然是指您的 soup.find。所以你可以这样做:

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

【讨论】:

嗨,克里斯,感谢您的回答。我试过你的代码:这次我没有错误,但href总是没有价值。我不明白为什么。我会尝试另一种我认为的方式.. @Koolen 您介意将您的新代码发布给我们吗? :) 另外,如果 Chris 的回答解决了您的问题(至少在某种程度上),您会很高兴mark it as the correct answer。 谢谢你,@Chris Pickett!对我来说,这段代码工作得很好!【参考方案2】:

好的,现在可以使用以下代码:

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`

【讨论】:

以上是关于用 Beautiful Soup 提取 href的主要内容,如果未能解决你的问题,请参考以下文章

python爬虫之Beautiful Soup库,基本使用以及提取页面信息

python爬虫之Beautiful Soup库,基本使用以及提取页面信息

Beautiful Soup - 在 div 之后提取

python 使用Beautiful Soup从页面中提取数据

使用Beautiful Soup 4提取特定列表项

使用 Beautiful Soup 提取 css 链接