📌  相关文章
📜  获取表格维基百科 - Python (1)

📅  最后修改于: 2023-12-03 15:11:53.300000             🧑  作者: Mango

获取表格维基百科 - Python

如果你想获取维基百科中的表格数据,可以使用一些 Python 库来实现。本文将介绍如何使用 BeautifulSoup 和 Pandas 库来获取表格数据,并将结果以 Markdown 格式返回。

BeautifulSoup

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

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 格式返回。使用这些方法可以方便地获取网页中的数据,并进行进一步处理和分析。