首页 > 解决方案 > 如何使用没有更新 URL 的动态表在 Pandas 中读取 HTML?

问题描述

我正在从https://www.wowprogress.com/获取数据并使用 Pandas 来完成。我将 HTML 读入数据框,并计算页面上的表格。我想要的表是第一个索引从 1 到 20 的表,依此类推。

问题是您可以按下页面上的“下一步”按钮......但URL根本没有改变。

我在下面使用的代码:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from unicodedata import normalize

table_wow = pd.read_html('https://www.wowprogress.com/')
print (table_wow)

这显示了我最后页面上的第一个表格。但我无法弄清楚如何模拟按下下一个按钮并通过我想要的任何页面获取第 2 页上的其余数据。

关于如何做到这一点的任何提示,或者我可能缺少什么?

标签: pythonpandasweb-scrapingbeautifulsoup

解决方案


检查网络活动时,您可以看到下一页是从 加载的https://www.wowprogress.com/pve/rating/next/0/rating/,并且/next/随着页码的增加而增加整数。因此,您可以循环浏览后续页面:

import pandas as pd
import time

table_wow = pd.read_html('https://www.wowprogress.com/')[1]

max_page = 10

for i in range(0,max_page):
    table = pd.read_html(f'https://www.wowprogress.com/pve/rating/next/{i}/rating/')[1]
    table_wow = table_wow.append(table, ignore_index=True)
    time.sleep(1.5)

推荐阅读