You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python从网页提取表格问题:仅获前两行如何解决?

问题解决:提取网页完整表格的修正方案

你的代码存在两个核心问题:

  • 变量引用错误:pd.read_html()返回的是网页中所有表格组成的列表(df_list),但你直接调用了未定义的df变量,实际需要从列表中选取目标表格的索引。
  • 请求未携带必要头信息:该网站可能拦截无浏览器标识的请求,导致返回不完整页面,只拿到前两行数据。

修正后的代码

import requests
import pandas as pd

url = 'https://www.wikirating.com/list-of-countries-by-credit-rating/'
# 添加请求头模拟浏览器访问,避免被反爬拦截
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
}
response = requests.get(url, headers=headers)
response.raise_for_status()  # 捕获请求失败的异常

# 读取网页中所有表格,目标表格是列表的第1个元素(索引从0开始)
df_list = pd.read_html(response.text)
df = df_list[1]  # df_list[0]是页面顶部的小型统计表格,df_list[1]为完整国家评级表

print(df)
df.to_csv('country_credit_ratings.csv', index=False)

关键说明

  • 请求头设置:通过User-Agent模拟浏览器请求,确保获取完整的页面内容,避免被网站反爬机制拦截。
  • 表格索引选择:网页包含多个表格,需根据实际结构选取对应索引的表格,这里df_list[1]才是你需要的完整国家信用评级数据。
  • 异常捕获:response.raise_for_status()会在请求返回错误状态码时抛出异常,方便快速排查问题。

内容的提问来源于stack exchange,提问作者Lisa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 02:04:55