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

Python网页爬取执行耗时过长问题排查与优化咨询

爬取纳斯达克机构持仓表格的问题分析与优化方案

你的代码存在的几个关键问题

  • 拼写错误:job1里的参数写成了classs_,正确应该是class_,这会导致job1直接返回None,后续所有链式调用都会失效,这是核心错误之一。
  • 反爬拦截:直接用requests.get请求纳斯达克网站,没有携带任何请求头,网站会识别为爬虫,要么返回慢、要么返回空页面,这是你耗时久的主要原因。
  • ResultSet调用错误:job5.findAll(...)返回的是ResultSet(列表类型),你直接用job6.find(...),列表没有find方法,这里会直接报错。
  • 文本获取错误:job11.findAll('tr', ...)返回的是多个tr元素的列表,列表没有.text属性,无法直接获取文本。
  • 冗余的逐层查找:逐层嵌套查找不仅代码冗余,而且一旦中间某个节点找不到,整个流程就断了,还会降低解析效率。

优化方案与修正代码

核心优化点

  1. 添加请求头:模拟浏览器发送请求,避免被反爬拦截
  2. 简化选择器:使用CSS选择器直接定位目标表格,跳过无关层级,提升解析速度
  3. 错误处理:添加异常判断,避免节点找不到导致崩溃
  4. 正确遍历元素:对ResultSet进行遍历,逐个提取内容

修正后的代码

from bs4 import BeautifulSoup
import requests

# 模拟浏览器请求头
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'
}

try:
    # 发送请求,设置超时避免卡住
    response = requests.get('https://www.nasdaq.com/market-activity/stocks/aapl/institutional-holdings', headers=headers, timeout=10)
    response.raise_for_status()  # 检查请求是否成功

    soup = BeautifulSoup(response.text, 'lxml')
    
    # 直接用CSS选择器定位目标tbody,跳过冗余层级
    tbody = soup.select_one('div.institutional-holdings__section--active-positions table.institutional-holdings__table tbody')
    
    if tbody:
        rows = tbody.find_all('tr', class_='institutional-holdings__row')
        for row in rows:
            # 提取每行的单元格文本
            cells = row.find_all('td')
            row_data = [cell.get_text(strip=True) for cell in cells]
            print(row_data)
    else:
        print("未找到目标表格")

except requests.exceptions.RequestException as e:
    print(f"请求出错: {e}")
except Exception as e:
    print(f"解析出错: {e}")

代码说明

  • 请求头:User-Agent让网站认为是浏览器访问,避免被拦截
  • CSS选择器:div.institutional-holdings__section--active-positions直接定位到"Active Positions"所在的区块,再找到里面的表格tbody,比逐层查找高效得多
  • 超时设置:timeout=10避免请求卡住无响应
  • 异常处理:捕获请求和解析过程中的错误,方便排查问题
  • 文本提取:遍历每行单元格,用get_text(strip=True)去除多余空格,得到干净的数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 10:01:16