Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/91.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Python从html标记中提取数据?_Python_Html_Beautifulsoup - Fatal编程技术网

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

如何使用Python从html标记中提取数据?,python,html,beautifulsoup,Python,Html,Beautifulsoup,我想从在线词典中提取一个单词的翻译。 例如,“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> 任何车轮上的车辆 如何在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>

  • 任何车轮上的车辆

  • 如何在Python中提取“车轮上的任何车辆”或任何其他模块?

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

    最简单的方法可能是通过
    找到它:

    soup.find('span', class_='def').text
    
    或者,使用
    CSS选择器

    soup.select('span.def')[0].text
    
    或者,另外检查家长:

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


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


    我通过beautifulsoup解决它:

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

    谢谢你的回答。但该html代码还有其他类似于上行的行,只有一个区别:value=“1”。对于每一行,值都会发生变化。“如何使用value=“1”提取行似乎与我已修改答案以包含开始标记和属性的答案重复。@SaraSantana更新了答案-最后一个选项检查
    属性值。
    import nltk 
    
    #load html chunk into variable htmlstring#
    extract = nltk.clean_html(htmlstring)
    print(extract)
    
    soup = bs4.BeautifulSoup(html)
    q1=soup.find('li', class_="sense_list_item level_1",value='1').text