beautifulsoup在标签之间获取文本

时间:2015-11-28 10:18:00

标签: html parsing beautifulsoup

   date =soup.find_all("td", {"id": "utime"})
   print date

 [<td class="mstat-date" colspan="3" id="utime">23.11.2015 17:00</td>]

这就是我想要的 [23.11.2015 17:00]

      print(soup.date.string)
     AttributeError: 'NoneType' object has no attribute 'string'

请帮忙,谢谢。

1 个答案:

答案 0 :(得分:0)

  1. 方法find_all将始终返回一个列表。在列表中,必须先编制索引,然后才能访问其中包含的元素的方法。所以,当你有

    date =soup.find_all("td", {"id": "utime"})
    

    您可以通过输入以下内容来访问第一个标记中的文本:

    date[0].text
    

    如果列表中有更多项目,您可以使用列表推导,如下所示:

    [ _.text for _ in date ]
    

    如果您正在抓取的HTML有多个类似日期的标记,那么这将为您提供日期列表。

  2. 除非在某些特定条件下,否则您的beautifulsoup实例不会与date属性/属性相关联。使用您的第一个功能访问所有日期,因此请勿尝试此方法(错误:soup.date)。