如何通过匹配BeautifulSoup中其属性中的文本来获取元素

时间:2012-12-28 03:22:43

标签: python beautifulsoup

我有这段代码

<a title="Next Page - Results 1 to 60 " href="bla bla" class="smallfont" rel="next">&gt;</a>

我想获取a元素并获取href。

如何将title属性与Next Page

相匹配

我想部分匹配a元素的title属性中的文本。

页面上有很多a个标签与之相似,但区别在于title属性包含"Next Page或文字为>

1 个答案:

答案 0 :(得分:2)

您必须使用Regex来完成您想要的任务。

首先将整个标记作为字符串,然后用它创建一个BeautifulSoup对象。

然后使用.findAll对象的BeautifulSoup方法,如下所示

import BeautifulSoup
import re

soup = BeautifulSoup('<a title="Next Page - Results 1 to 60 " href="bla bla" class="smallfont" rel="next">&gt;</a>')

elements = soup.findAll('a', {'title':re.compile('Next Page.')}) 
# get all 'a' elements with 'title' attribute as 'Next Page something' into a list

for e in elements:
    if str(e.string) == '>' or e.string == '&gt;': # check if string inside 'a' tag is '>'
        print e['href']