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

如何用Pandas抓取包含href链接的多个表格?

解决方案:同时获取表格数据与href链接

pd.read_html仅提取单元格文本,不会保留HTML属性,因此需要结合requests和BeautifulSoup手动解析页面,提取每个单元格的文本及对应链接,再构建DataFrame。

实现代码

import requests
from bs4 import BeautifulSoup
import pandas as pd

# 初始化存储数据的列表
all_rows = []
base_url = 'https://www.screener.in/screens/881782/rk-all-stocks/?page={}'

# 遍历目标页面
for page_num in range(1, 10):
    # 发送HTTP请求获取页面内容
    response = requests.get(base_url.format(page_num))
    response.raise_for_status()  # 捕获请求错误
    
    # 解析HTML页面
    soup = BeautifulSoup(response.text, 'html.parser')
    
    # 定位目标表格(通过class筛选,适配目标网站的表格结构)
    target_table = soup.find('table', class_='data-table')
    if not target_table:
        continue
    
    # 提取表头
    headers = [th.get_text(strip=True) for th in target_table.find('thead').find_all('th')]
    
    # 遍历表格行数据
    for row in target_table.find('tbody').find_all('tr'):
        row_data = {}
        cells = row.find_all('td')
        
        for idx, cell in enumerate(cells):
            current_header = headers[idx]
            # 提取单元格文本
            cell_text = cell.get_text(strip=True)
            # 查找单元格内的链接
            link_tag = cell.find('a')
            
            if link_tag and 'href' in link_tag.attrs:
                # 拼接完整链接(目标网站的href是相对路径)
                full_link = f"https://www.screener.in{link_tag['href']}"
                # 同时存储文本和对应链接(链接单独作为一列)
                row_data[current_header] = cell_text
                row_data[f"{current_header} 链接"] = full_link
            else:
                # 无链接的单元格仅存储文本
                row_data[current_header] = cell_text
        
        all_rows.append(row_data)

# 转换为DataFrame并保存
final_df = pd.DataFrame(all_rows)
final_df.to_csv('带链接的股票数据.csv', index=False, encoding='utf-8-sig')

关键说明

  1. 页面解析逻辑:通过BeautifulSoup定位表格,遍历每一行和单元格,判断是否存在<a>标签,若存在则提取href属性并拼接成完整链接。
  2. 数据存储方式:将链接作为对应文本列的补充列(如“股票名称”对应“股票名称 链接”),确保CSV中同时保留可读文本和原始链接。
  3. 异常处理:加入response.raise_for_status()捕获请求失败的情况,避免因页面加载错误导致程序中断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 13:18:08