2

这是我从这行 Python 代码中得到的结果

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

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

<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>

但是,我真正想要的是内部的“1507 BOSTWICK LN”<img alt=

我试过.get_textwith 返回一个空白,我试过 lista = soup.findAll('td',{'class':'thumb'},{'alt':'img'}),以及其他几个没有让我得到文本的变体。

我想让 BeautifulSoup 返回文本,还是正则表达式有效?我对RE的了解是zilch,任何输入将不胜感激!


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

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

2 回答 2

4

试试这个:

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']
于 2013-01-28T14:50:16.757 回答
3

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

for td in listm:
    img = td.find('img')
    if img is not None:
        print img['alt']
于 2013-01-28T14:49:29.413 回答