当我们在爬取网页时,可能会遇到一个需求,将网页中的 HTML 表格转换成 Excel 表格。这时候使用Python可以轻松地完成这个任务。下面,我将详细讲解如何使用Python将HTML表格转换成Excel。
第一步:安装第三方库
Python中非常有名的第三方库是 BeautifulSoup
,它是一个HTML和XML的解析库,可以用来帮助我们解析HTML代码,提取出需要的信息,使得爬虫任务更加方便快捷。因此,首先需要安装 BeautifulSoup
库。在命令行(terminal)中输入以下命令:
pip install beautifulsoup4
安装完毕后,就可以开始使用 BeautifulSoup
库了。
第二步:爬取HTML表格数据
在我们将HTML表格转换成Excel表格之前,需要先从网站上获取HTML表格数据。这里我们以一个网站上的一个HTML表格为例子。在Python中,可以使用 requests
库来获取网页的HTML代码,并使用 BeautifulSoup
解析HTML代码提取出需要的表格数据。以下是示例代码:
import requests
from bs4 import BeautifulSoup
import pandas as pd
url = 'http://www.example.com/table.html'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
table = soup.find_all('table')[0]
rows = table.findAll('tr')
在这个示例中,我们首先利用 requests
库获取网页HTML代码,再利用 BeautifulSoup
解析出HTML中的表格数据,并将每一行的数据存储在数组 rows
中。
第三步:将HTML表格数据转换成Excel表格
完成了前两步后,就可以开始将HTML表格数据转换成Excel表格了。这里我们使用 Python 中的 pandas
库的 DataFrame
类来生成Excel表格。以下是示例代码:
data = []
for row in rows:
cols = row.findChildren(recursive=False)
cols = [ele.text.strip() for ele in cols]
data.append([ele for ele in cols if ele])
df = pd.DataFrame(data)
df.to_excel('output.xlsx', index=False, header=False)
在这个示例中,我们首先将每一行(即每一个 <tr>
标签)中的单元数据提取出来,并存储在数组 cols
中;对于每一个 <td>
标签,我们使用 strip()
函数去掉前后的空格,最后将所有单元格组成一个二维列表 data
。然后,我们将这个二维列表传递给 DataFrame
类,生成一个 pandas
的数据框,最后通过 to_excel()
方法将数据框保存为Excel表格。在这个例子中,我们将Excel表格存储到名为 output.xlsx
的文件中。
至此,我们已经使用Python将HTML表格转换成Excel表格。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python将HTML表格转换成excel - Python技术站