BeautifulSoup找到里面的文字

时间:2013-01-28 14:45:12

标签: python regex beautifulsoup

以下是我从这个Python代码行中获得的内容

listm = soup.findAll('td',{'class':'thumb'})

当我遍历listm时,这是一个项目的例子......

<a href="/property-search/property-details/1021206?StrtNum=1507"><img alt="1507 BOSTWICK LN" src="/res/slir/w75-h57-c4:3/propertyimages/20120904/BB/DSCN0738.JPG"/></a>

然而,我真正想要的是<img alt=

中的“1507 BOSTWICK LN”

我已经尝试了.get_text并返回一个空白,我试过了 lista = soup.findAll('td',{'class':'thumb'},{'alt':'img'})以及其他一些不会让我看到文字的变体。

我想让BeautifulSoup返回文本,还是会正常表达?我对RE的了解是zilch,任何输入都会非常感激!!

2 个答案:

答案 0 :(得分:3)

您的td元素包含一些嵌套元素;在每个img元素中搜索td标记,然后使用项目查找获取alt属性:

for td in listm:
    img = td.find('img')
    if img is not None:
        print img['alt']

答案 1 :(得分:3)

试试这个:

listm = soup.findAll('td',{'class':'thumb'})
for elem in listm:
    print elem('img')[0]['alt']

这应在每个img中找到td标记,并打印alt属性的值。

编辑:

您不应该假设存在img标记。这样做:

listm = soup.findAll('td',{'class':'thumb'})
for elem in listm:
    imgs = elem('img')
    if imgs:
        print imgs['alt']