使用BeautifulSoup解析表和XML
Python编程中的解析意味着将一团文本分解成更小且有意义的部分。 这种分解取决于特定解析器定义的某些规则和因素。 这些解析器的范围可以从逐行解析的本机字符串方法到诸如 html5lib
,它可以解析 HTML 文档的几乎所有元素,将其分解为不同的标签和片段,可以针对各种用例过滤掉这些元素。
抓取是每个人都应该学习的一项非常重要的技能,它可以帮助我们从网站或文件中抓取数据,本文我们晓得博客为你介绍使用BeautifulSoup解析表和XML的全部内容,在深入研究之前对这两个库进行概述。
Python中解析器
Html5lib 和 lxml 是一个 Python 库,可以轻松处理 XML 和 HTML 文件,也可用于网页抓取。有很多现成的 XML 解析器,但为了获得更好的结果,开发人员有时更喜欢编写自己的 XML 和 HTML 解析器。由于 html5lib
是一个纯 python 库,它具有外部 Python 依赖关系,而 lxml
某些 C 库的绑定具有外部 C 依赖关系。
lxml: C库的成熟的 Pythonic 绑定 libxml2
和 libxslt
. 它的独特之处在于它将这些库的速度和 XML 功能完整性与原生 Python API 的简单性相结合,大部分兼容但优于众所周知的 ElementTree
火。
lxml 安装:
pip install lxml
bs4: Beautiful Soup 是一个 Python 库,用于从 HTML 和 XML 文件中提取数据。 可以使用以下命令安装它:
pip install bs4
request: Requests 允许您非常轻松地发送 HTTP/1.1 请求。 可以使用以下命令安装它:
pip install requests
BeautifulSoup解析表的方法
第 1 步: 首先,我们需要导入模块,然后分配 URL。
# import required modules
import bs4 as bs
import requests
# assign URL
URL = 'https://www.geeksforgeeks.org/python-list/'
第 2 步: 创建一个 BeautifulSoap 对象进行解析。
# parsing
url_link = requests.get(URL)
file = bs.BeautifulSoup(url_link.text, "lxml")
第 3 步: 然后找到表及其行。
# find all tables
find_table = file.find('table', class_='numpy-table')
rows = find_table.find_all('tr')
第 4 步: 现在创建一个循环来查找表中的所有 td 标签,然后打印所有表数据标签。
# display tables
for i in rows:
table_data = i.find_all('td')
data = [j.text for j in table_data]
print(data)
使用BeautifulSoup解析表和XML方法的完整程序:
import bs4 as bs
import requests
# assign URL
URL = 'https://www.geeksforgeeks.org/python-list/'
# parsing
url_link = requests.get(URL)
file = bs.BeautifulSoup(url_link.text, "lxml")
# find all tables
find_table = file.find('table', class_='numpy-table')
rows = find_table.find_all('tr')
# display tables
for i in rows:
table_data = i.find_all('td')
data = [j.text for j in table_data]
print(data)
输出:
BeautifulSoup解析XML文件的方法
第 1 步: 在继续之前,您可以创建自己的“xml 文件”,也可以复制并粘贴以下代码,并将其命名为 test.xml 文件。
<?xml version="1.0" ?>
<books>
<book>
<title>Introduction of Beautifulsoup</title>
<author>Beautifulsoup tutorial</author>
<price>6.99</price>
</book>
<book>
<title>Introduction of NumPy</title>
<author>NumPy tutorial</author>
<price>8.99</price>
</book>
<book>
<title>Introduction of Pycharm</title>
<author>Pycharm tutorial</author>
<price>9.35</price>
</book>
</books>
第 2 步: 创建一个 python 文件并导入模块。
# import required modules
from bs4 import BeautifulSoup
第 3 步: 读取 XML 的内容。
# reading content
file = open("test.xml", "r")
contents = file.read()
第 4 步: 解析 XML 的内容。
# parsing
soup = BeautifulSoup(contents, 'xml')
titles = soup.find_all('title')
步骤 5: 显示 XML 文件的内容。
# parsing
soup = BeautifulSoup(contents, 'xml')
titles = soup.find_all('title')
使用BeautifulSoup解析表和XML方法的完整程序:
# import required modules
from bs4 import BeautifulSoup
# reading content
file = open("test.xml", "r")
contents = file.read()
# parsing
soup = BeautifulSoup(contents, 'xml')
titles = soup.find_all('title')
# display content
for data in titles:
print(data.get_text())
输出:
总结
以上是晓得博客为你介绍的使用BeautifulSoup解析表和XML的全部内容,可以很容易观察两个库在文档的解析方面的差异。
Claude、Netflix、Midjourney、ChatGPT Plus、PS、Disney、Youtube、Office 365、多邻国Plus账号购买,ChatGPT API购买,优惠码XDBK,用户购买的时候输入优惠码可以打95折