下面是关于Python实现简单HTML表格解析的方法的详细实例教程。
简介
HTML是网页的基础,而网页中最常用的就是表格。在某些情况下,我们需要从HTML表格中提取数据以便进一步处理,因此,Python中如何解析HTML表格变得非常重要。在Python中,有多种解析HTML表格的方法,本篇文章将介绍其中的两种方法:使用pandas库和使用BeautifulSoup库。
方法一:使用pandas库
pandas库是一个强大的数据分析工具,其中包含了各种函数以帮助我们解析HTML表格。下面是一个简单的示例:
import pandas as pd
tables = pd.read_html("https://en.wikipedia.org/wiki/List_of_countries_by_population_(United_Nations)")
print(tables[1])
上面的代码读取维基百科页面上的国家人口数据表,并将其打印出来。其中,read_html()
函数会返回一个包含所有表格的列表,我们只需要找到自己需要的表格并将其打印出来即可。
方法二:使用BeautifulSoup库
BeautifulSoup是一个非常流行的HTML解析器,同样可以帮助我们解析表格。下面是一个简单的示例:
from urllib.request import urlopen
from bs4 import BeautifulSoup
html_page = urlopen("https://en.wikipedia.org/wiki/List_of_countries_by_population_(United_Nations)")
soup = BeautifulSoup(html_page, features="html.parser")
table = soup.find("table", {"class": "wikitable sortable"})
for row in table.findAll("tr"):
cells = row.findAll("td")
if len(cells) == 7:
print(cells[1].find(text=True))
上面的代码同样读取维基百科页面上的国家人口数据表,并将其逐行解析。我们可以在解析每行时,找到需要的单元格并将其打印出来。
示例
在实现HTML表格解析的过程中,我们可以使用各种方式来获取数据。下面是两个简单的示例:
示例一:解析美国新冠疫情数据表
以下代码解析了一个美国新冠疫情数据表,将其转化为一个pandas DataFrame并打印出来:
import pandas as pd
tables = pd.read_html("https://www.worldometers.info/coronavirus/country/us/")
print(tables[0])
示例二:解析股票数据表
以下代码解析了一张包含股票价格和涨跌幅的数据表,并将涨跌幅大于5%的股票代码和名称打印出来:
from urllib.request import urlopen
from bs4 import BeautifulSoup
html_page = urlopen("https://finance.yahoo.com/gainers")
soup = BeautifulSoup(html_page, features="html.parser")
table = soup.find("table")
for row in table.findAll("tr")[1:]:
cells = row.findAll("td")
if len(cells) == 9:
name = cells[0].find(text=True)
symbol = cells[1].find(text=True)
change = cells[6].find(text=True)
if change.startswith("+") and float(change[1:-1]) > 5:
print(symbol, name)
结论
以上是两种不同的方式,用于解析HTML表格中的数据。通过pandas库和BeautifulSoup库,它们可以轻松地将表格数据转化为数据帧,并进一步处理和分析。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python实现简单HTML表格解析的方法 - Python技术站