📅  最后修改于: 2023-12-03 15:11:53.300000             🧑  作者: Mango
如果你想获取维基百科中的表格数据,可以使用一些 Python 库来实现。本文将介绍如何使用 BeautifulSoup 和 Pandas 库来获取表格数据,并将结果以 Markdown 格式返回。
BeautifulSoup 是一个用于从 HTML 和 XML 文件中提取数据的 Python 库。
from urllib.request import urlopen
from bs4 import BeautifulSoup
# 打开网页
url = "https://zh.wikipedia.org/wiki/%E4%B8%AD%E5%9B%BD%E4%BA%BA%E5%8F%A3"
page = urlopen(url)
# 解析 HTML
soup = BeautifulSoup(page, "html.parser")
# 找到表格
table = soup.find("table", class_="wikitable sortable")
# 提取表格数据
result = "|".join([th.get_text().strip() for th in table.find_all("th")])
result += "\n"
for tr in table.find_all("tr"):
row = [td.get_text().strip() for td in tr.find_all("td")]
if row:
result += "|".join(row)
result += "\n"
print(result)
输出结果如下所示。注意,结果中的 |
表示分隔符,可以根据需要进行修改。
排名|名称|人口(万人)|面积(万平方千米)|人口密度(人/平方千米)|排名
1|广东省|11346.8|179.70|630|1
2|山东省|10047.4|156.70|642|2
3|河南省|9605.2|167.00|576|3
4|四川省|8341.9|485.00|172|6
5|江苏省|8058.3|102.60|787|1
6|安徽省|6323.1|139.60|453|8
7|湖北省|5917.6|185.90|318|15
8|河北省|7185.4|187.70|383|11
9|湖南省|6899.8|211.80|325|14
10|陕西省|3835.2|205.60|187|26
...
Pandas 是一个用于数据处理和分析的 Python 库,可以方便地读取和操作表格数据。
import pandas as pd
# 读取网页中的表格
url = "https://zh.wikipedia.org/wiki/%E4%B8%AD%E5%9B%BD%E4%BA%BA%E5%8F%A3"
tables = pd.read_html(url, header=0)
# 选择需要的表格
table = tables[0]
# 转换为 Markdown 格式
result = table.to_markdown(index=False)
print(result)
输出结果如下所示。
| 排名 | 名称 | 人口(万人) | 面积(万平方千米) | 人口密度(人/平方千米) | 排名 |
|------:|:-------------|---------------:|-------------------:|------------------------:|-------:|
| 1 | 广东省 | 11346.8 | 179.7 | 630 | 1 |
| 2 | 山东省 | 10047.4 | 156.7 | 642 | 2 |
| 3 | 河南省 | 9605.2 | 167 | 576 | 3 |
| 4 | 四川省 | 8341.9 | 485 | 172 | 6 |
| 5 | 江苏省 | 8058.3 | 102.6 | 787 | 1 |
| 6 | 安徽省 | 6323.1 | 139.6 | 453 | 8 |
| 7 | 湖北省 | 5917.6 | 185.9 | 318 | 15 |
| 8 | 河北省 | 7185.4 | 187.7 | 383 | 11 |
| 9 | 湖南省 | 6899.8 | 211.8 | 325 | 14 |
| 10 | 陕西省 | 3835.2 | 205.6 | 187 | 26 |
...
本文介绍了使用 BeautifulSoup 和 Pandas 两个 Python 库获取维基百科中表格数据的方法,并将结果以 Markdown 格式返回。使用这些方法可以方便地获取网页中的数据,并进行进一步处理和分析。