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

Python读取需点击HTML标签的链接内容遇308重定向如何解决?

解决方法

方案1:用Selenium模拟浏览器点击Tab

新页面的HTML内容需要手动点击Tab才会显示,pd.read_html无法处理这种动态交互,用Selenium可以模拟真实浏览器操作:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import pandas as pd

# 初始化Chrome浏览器(需提前安装对应版本的chromedriver)
driver = webdriver.Chrome()
url = "https://busquedas.elperuano.pe/dispositivo/NL/2113205-1"
driver.get(url)

# 等待HTML Tab加载完成并点击(根据页面实际元素定位,此处假设Tab文本为"HTML")
html_tab = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.XPATH, "//*[text()='HTML']"))
)
html_tab.click()

# 获取加载完成后的页面源码,关闭浏览器
page_source = driver.page_source
driver.quit()

# 用pandas提取表格
df_project = pd.read_html(page_source)
print(df_project)

安装依赖命令:pip install selenium

方案2:抓包获取HTML内容的真实接口

打开浏览器开发者工具(F12)切换到「网络」标签,点击页面的「HTML」Tab,观察新出现的网络请求,找到返回HTML内容的接口地址,直接请求该接口:

import requests
import pandas as pd

# 复制浏览器请求头中的必要参数(如User-Agent、Cookie)
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"
}
# 替换为抓包得到的实际接口地址
api_url = "https://busquedas.elperuano.pe/api/dispositivo/html/2113205-1"
response = requests.get(api_url, headers=headers)

# 提取表格数据
df_project = pd.read_html(response.text)
print(df_project)

该方法无需启动浏览器,效率更高,建议优先尝试。

方案3:检查页面静态源码中的隐藏内容

部分页面的Tab内容已存在于源码中,仅通过CSS隐藏,可直接用requests获取源码后提取表格:

import requests
import pandas as pd

url = "https://busquedas.elperuano.pe/dispositivo/NL/2113205-1"
response = requests.get(url)

# 尝试读取页面中所有表格,可能包含隐藏的HTML Tab内容
df_project = pd.read_html(response.text)
print(df_project)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 12:02:31