如何使用BeautifulSoup(Python)从HTML标签中提取文本?

如何使用BeautifulSoup(Python)从HTML标签中提取文本?,python,html,beautifulsoup,Python,Html,Beautifulsoup,我正在编写一个Python脚本,它可以与一些HTML进行交互。我目前正在使用BeautifulSoup解析这个HTML(我以前在XML中使用过它,非常棒!!!),我想知道从HTML中提取时间(文本)信息的最佳方法是什么。下面是我所说的图片: 我想提取“225房间8:00am”,“225房间8:30am”等等 是否有人对用于从标签中提取文本的BeautifulSoup函数有具体建议 以下是原始HTML(美化): 225房间上午8:30 , 225房间上午9:30 , 225房间上午1

我正在编写一个Python脚本,它可以与一些HTML进行交互。我目前正在使用BeautifulSoup解析这个HTML(我以前在XML中使用过它,非常棒!!!),我想知道从HTML中提取时间(文本)信息的最佳方法是什么。下面是我所说的图片:

我想提取“225房间8:00am”,“225房间8:30am”等等

是否有人对用于从标签中提取文本的BeautifulSoup函数有具体建议

以下是原始HTML(美化):


  • 225房间上午8:30
  • ,
  • 225房间上午9:30
  • ,
  • 225房间上午10:30
  • ,
  • 225房间上午11:30
  • ,
  • 225房间下午2:30

  • 搜索
    标签
    元素,然后使用获取标签文本

    在这里,也许a是有帮助的:

    for label in soup.select('li.zone label'):
        print label.string
    
    演示:


    请发布HTML文本而不是屏幕截图;这使得为你提供一个演示变得容易多了。你不觉得这对你有用吗?你被困在哪里了?@MartijnPieters我试着输入原始HTML,但是堆栈溢出一直将其作为真实的HTML读取。我还没有尝试element.string,让我试试。使用
    {}
    将所有行缩进4个前导空格。请参阅快速问题。。。为什么BeautifulSoup函数仅限于与“soup”一起使用,而不是与任何变量一起使用?例如var=soup.findAll(id='student'),然后执行var.prettify(),但
    findAll()
    返回结果列表。因此,您需要执行
    var[0].prettify()
    。如果您使用
    var=soup.find(id='student')
    ,那么您将获得第一个匹配项(对于按id搜索来说是合乎逻辑的),并且只会得到一个元素对象。
    for label in soup.select('li.zone label'):
        print label.string
    
    >>> for label in soup.select('li.zone label'):
    ...     print label.string
    ... 
    Room 225 8:30 AM
    Room 225 9:30 AM
    Room 225 10:30 AM
    Room 225 11:30 AM
    Room 225 2:30 PM