beautifulsoup - 在 div 中提取链接

Posted

技术标签:

【中文标题】beautifulsoup - 在 div 中提取链接【英文标题】:beautifulsoup - extracting link within a div 【发布时间】:2013-07-19 18:27:52 【问题描述】:

我有一个汤,内容如下

许多 div,我感兴趣的是具有“foo”类的那些

在每个 div 中,有很多链接和其他内容, 我对第二个链接感兴趣(第二个<a> </a>)=> 它总是第二个 我想抓取链接(在href属性中)和第二个链接标签<a> </a>之间的文字

例如:

<div class ="foo">
     <a href ="http://example.com"> </a>
     <a href ="http://example2.com"> Title here </a>
</div>

<div class ="foo">
     <a href ="http://example3.com"> </a>
     <a href ="http://example4.com"> Title 2 here </a>
</div>

这里是我想要的:

此处的标题 => http://example2.com

此处为标题 2 => http://example4.com

我试过写一些代码:

soup.findAll("div",  "class" : "foo" )

但这会返回一个包含所有 div 及其内容的列表,我不知道如何进一步

谢谢:)

【问题讨论】:

【参考方案1】:

迭代divs 并在那里找到a

from bs4 import BeautifulSoup

example = '''
<div class ="foo">
     <a href ="http://example.com"> </a>
     <a href ="http://example2.com"> Title here </a>
</div>

<div class ="foo">
     <a href ="http://example3.com"> </a>
     <a href ="http://example4.com"> Title 2 here </a>
'''

soup = BeautifulSoup(example)
for div in soup.findAll('div', 'class': 'foo'):
    a = div.findAll('a')[1]
    print a.text.strip(), '=>', a.attrs['href']

【讨论】:

以上是关于beautifulsoup - 在 div 中提取链接的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 BeautifulSoup 在 HTML 中提取折扣价

使用 BeautifulSoup 按 id 获取 div 的内容

Beautiful Soup - 在 div 之后提取

在python beautifulsoup中从html中提取json

使用 BeautifulSoup 从 img 标签中提取 src 属性

如何让 BeautifulSoup 获得以下 div 类的价值