Python 您如何在a<;span>;标记一个特定的“";class=id";类型属性与靓汤?

Python 您如何在a<;span>;标记一个特定的“";class=id";类型属性与靓汤?,python,parsing,beautifulsoup,Python,Parsing,Beautifulsoup,我正在尝试使用BeautifulSoup创建一个页面,该页面的一般格式如下: <span class="ID1"> TEXT </span> <span class="ID2"> TEXT2 </span> 这将调出div中的所有标记,但我不知道如何在s中搜索。我试过像tag.find('class')和.find('ID')这样的方法,但是运气不好 我可以通过找到这个对象的字符串表示,然后测试它是否有我正在寻找的ID来手动查找我正在寻找的东西,

我正在尝试使用BeautifulSoup创建一个页面,该页面的一般格式如下:

<span class="ID1"> TEXT </span>
<span class="ID2"> TEXT2 </span>
这将调出
div中的所有
标记,但我不知道如何在
s
中搜索。我试过像
tag.find('class')
.find('ID')
这样的方法,但是运气不好

我可以通过找到这个对象的字符串表示,然后测试它是否有我正在寻找的ID来手动查找我正在寻找的东西,但这看起来像是一种带辅助的方法。我肯定有些东西我只是没看到

注意:我还尝试将ID的正则表达式传递给
find
函数ala:

for tag in soup.find_all('div'):
    print tag.find(re.compile('id2'))
不幸的是,仍然没有运气

那么,如何搜索特定的类值呢

*编辑[已解决]
我通过BeautifulSoup内置的
find
函数了解了如何做到这一点,而无需手动检查其字典结构

要使用
find
函数在html标记中选择特定的
class=value
,请传入要查找的常规标记名作为第一个参数(在我的示例中,它是“”标记的一部分)。作为第二个参数,传入一个字典,其中包含要查找的特定
'class':'value'

例如,如果我要刮取的HTML如下所示:

<div>
    <span class="ID1"> TEXT </span>
    <other HTML junk> 
    <span class="ID2"> TEXT2 </span>
</div>
塔达

这应该有效:

for tag in soup.findAll('span'):
    if tag.has_key('class'):
        if tag['class'] == 'ID2':
            # do stuff
测试此代码:

from BeautifulSoup import BeautifulSoup

text = '''
<span class="ID1"> TEXT </span>
<span class="ID2"> TEXT2 </span>
'''

soup = BeautifulSoup(text)

for tag in soup.findAll('span'):
    if tag.has_key('class'):
        if tag['class'] == 'ID2':
            print tag.string
            break
从美化组导入美化组
文本='''
正文
文本2
'''
soup=BeautifulSoup(文本)
对于soup.findAll('span')中的标记:
如果tag.has_key('class'):
如果标记['class']=='ID2':
打印tag.string
打破
提供以下输出:

TEXT2 文本2
from BeautifulSoup import BeautifulSoup

text = '''
<span class="ID1"> TEXT </span>
<span class="ID2"> TEXT2 </span>
'''

soup = BeautifulSoup(text)

for tag in soup.findAll('span'):
    if tag.has_key('class'):
        if tag['class'] == 'ID2':
            print tag.string
            break
TEXT2