我正在编写一个Python脚本,该脚本可以与某些HTML进行交互。我目前正在使用BeautifulSoup来解析这个HTML(之前我已经使用过XML和它真棒!!!)我想知道最好的方法是什么从HTML中提取时间(文本)信息。这是我在下面谈论的图片:
我试图提取" Room 225 8:00 am" ," Room 225 8:30 am"等等......
是否有人对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>
答案 0 :(得分:5)
搜索label
元素,然后使用element.string
attribute获取标签文字。
在这里,或许CSS selector search很有帮助:
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