如何使用 Python 从 html 标签中提取数据?

How can I extract data from a html tag using Python?

我想提取在线词典中单词的翻译。 例如,'car' 的 html 代码:

<ol class="sense_list level_1">
     <li class="sense_list_item level_1" value="1"><span class="def">any vehicle on wheels</span></li>

如何使用 beautifulsoup 或任何其他模块在 Python 中提取 "any vehicle on wheels"?

有多种方法可以到达所需的元素。

可能最简单的方法是通过 class:

找到它
soup.find('span', class_='def').text

或者 CSS selector:

soup.select('span.def')[0].text

或者,另外检查 parents:

soup.select('ol.level_1 > li.level_1 > span.def')[0].text

或:

soup.select('ol.level_1 > li[value=1] > span.def')[0].text

假设这是唯一给出的 HTML 代码,您可以使用 NLTK.

import nltk 

#load html chunk into variable htmlstring#
extract = nltk.clean_html(htmlstring)
print(extract)

我通过beautifulsoup解决了:

soup = bs4.BeautifulSoup(html)
q1=soup.find('li', class_="sense_list_item level_1",value='1').text