📜  使用Python textminer 模块在 HTML 中提取基于规则的数据

📅  最后修改于: 2022-05-13 01:54:27.182000             🧑  作者: Mango

使用Python textminer 模块在 HTML 中提取基于规则的数据

在使用 HTML 时,以Python数据容器(如列表、字典、整数等)的形式,以有序的方式从纯 HTML 标签中提取数据有各种要求。本文介绍了一个使用规则帮助实现这一目标的库基于的方法。

Python 的特点——文本挖掘器:

  • 从 HTML 中以列表、字典和文本的形式提取数据。
  • 使用 YAML 格式的基于规则的系统。
  • 支持以抓取的形式从 URL 中提取。

安装:

使用以下命令安装Python textminer:

pip install textminer

功能说明:

从 HTML 中提取数据时,以下函数会派上用场:

句法:

extract(html, rule) 

参数:



  • html:要从中提取数据的 HTML。
  • rule: YAML 格式的规则,应用于 HTML 以提取数据。

句法:

extract_from_url(url, rule)  

参数:

  • rule: YAML 格式的规则,应用于 HTML 以提取数据。
  • url:必须从中提取 HTML 的 HTML URL。

示例 1:从 HTML 中提取数据

这个 YAML 格式的基本规则用于提取后缀和前缀之间的数据。

Python3
import textminer
  
# input html
inp_html = '
GFG is best for Geeks
'    # yaml rule string rule = ''' value:   prefix:
  suffix:
'''    # using extract() to get required data res = textminer.extract(inp_html, rule)    print("The data extracted between divs : ") print(res)


Python3
import textminer
  
# input html
inp_html = """

        
  • Gfg
  •     
  • is
  •     
  • best
"""    # yaml rule string # extracting list using
  • # using "list" keyword rule = ''' list:   prefix:
  •   suffix:
  • '''    # using extract() to get required data res = textminer.extract(inp_html, rule)    print("The data extracted between list tags : ") print(res)


    Python3
    import textminer
      
    # input html
    inp_html = """
    
    
    Best
    Geeks
    """    # yaml rule string # extracting dict. using dict # using int to extract key in integer format rule = ''' dict: - key: gfg   prefix:
      suffix:
    - key: 4   prefix:
      suffix:
      type: int '''    # using extract() to get required data res = textminer.extract(inp_html, rule)    print("The data extracted between dictionary tags : ") print(res)


    Python3
    import textminer
      
    # required url
    target_url = "https://www.geeksforgeeks.org/"
      
    # extracting title from url
    rule = '''
    value:
      prefix: 
      suffix: 
    '''
      
    # using extract() to get required data
    res = textminer.extract_from_url(target_url, rule)
      
    print("The data extracted between title tags from url : ")
    print(res)


    输出 :



    在div之间提取数据

    示例 2:从 HTML 中提取列表

    通过使用

  • 作为规则的前缀和后缀,可以从通常使用列表标签的Html中提取基于python的列表。此外,需要添加“list”关键字来实现这一点。

    蟒蛇3

    import textminer
      
    # input html
    inp_html = """
    
    
          
    • Gfg
    •     
    • is
    •     
    • best
    """    # yaml rule string # extracting list using
  • # using "list" keyword rule = ''' list:   prefix:
  •   suffix:
  • '''    # using extract() to get required data res = textminer.extract(inp_html, rule)    print("The data extracted between list tags : ") print(res)

    输出 :

    提取列表

    示例 3:使用定义的数据类型从 HTML 中提取字典。

    与上面的示例类似,可以使用“dic”关键字提取字典,并提及将键映射到所需的“键”,并使用具有特定 id 的前缀和后缀标签来提取值。可以使用“type”关键字来提及数据类型。

    蟒蛇3

    import textminer
      
    # input html
    inp_html = """
    
    
    Best
    Geeks
    """    # yaml rule string # extracting dict. using dict # using int to extract key in integer format rule = ''' dict: - key: gfg   prefix:
      suffix:
    - key: 4   prefix:
      suffix:
      type: int '''    # using extract() to get required data res = textminer.extract(inp_html, rule)    print("The data extracted between dictionary tags : ") print(res)

    输出 :

    提取字典

    示例 4:从 URL 中提取 HTML

    除了将 HTML 作为字符串,还可以使用extract_from_url ()使用 url 来提供 HTML。

    蟒蛇3

    import textminer
      
    # required url
    target_url = "https://www.geeksforgeeks.org/"
      
    # extracting title from url
    rule = '''
    value:
      prefix: 
      suffix: 
    '''
      
    # using extract() to get required data
    res = textminer.extract_from_url(target_url, rule)
      
    print("The data extracted between title tags from url : ")
    print(res)
    

    输出 :

    从 URL 中提取。