如何使用BeautifulSoup(Python)从HTML标签提取文本?
我正在写一个Python脚本,目的是去处理一些HTML内容。目前我在用BeautifulSoup来解析这些HTML(我之前也用过它处理XML,真是太棒了!!!),我想知道从HTML中提取时间(文本)信息的最佳方法是什么。下面是我说的内容的图片:
我想提取“Room 225 8:00am”、“Room 225 8:30am”等等……
有没有人能推荐一个具体的BeautifulSoup函数,适合用来从标签中提取文本?
这里还有原始的HTML(格式化过的):
<html>
<body>
<li class="zone even open day">
<label for="srr-1-1397046600">
Room 225 8:30 AM
</label>
<input id="srr-1-1397046600" name="srr-1-1397046600" type="checkbox" value="Y"/>
<span class="drag-handle">
</span>
</li>
,
<li class="zone even open day">
<label for="srr-1-1397050200">
Room 225 9:30 AM
</label>
<input id="srr-1-1397050200" name="srr-1-1397050200" type="checkbox" value="Y"/>
<span class="drag-handle">
</span>
</li>
,
<li class="zone even open day">
<label for="srr-1-1397053800">
Room 225 10:30 AM
</label>
<input id="srr-1-1397053800" name="srr-1-1397053800" type="checkbox" value="Y"/>
<span class="drag-handle">
</span>
</li>
,
<li class="zone even open day">
<label for="srr-1-1397057400">
Room 225 11:30 AM
</label>
<input id="srr-1-1397057400" name="srr-1-1397057400" type="checkbox" value="Y"/>
<span class="drag-handle">
</span>
</li>
,
<li class="zone even open day">
<label for="srr-1-1397068200">
Room 225 2:30 PM
</label>
<input id="srr-1-1397068200" name="srr-1-1397068200" type="checkbox" value="Y"/>
<span class="drag-handle">
</span>
</li>
</body>
</html>
1 个回答
6
首先,找到网页中的 label
元素,然后可以用 element.string
属性 来获取这个标签的文本内容。
在这里,使用 CSS 选择器搜索 可能会很有帮助:
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