使用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)
输出 :
示例 2:从 HTML 中提取列表
通过使用
蟒蛇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)
输出 :