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

在Jupyter Notebook中用Selenium XPath提取公司概述文本失败如何解决?

解决网页公司概述文本爬取失败的方案
  • 修正元素选择器
    从网页元素截图来看,公司概述板块必然有专属的类名、ID或层级结构,先确认目标文本的准确定位路径:

    • 若用BeautifulSoup,替换成实际的选择器:
      from bs4 import BeautifulSoup
      import requests
      
      resp = requests.get("你的目标网页URL")
      soup = BeautifulSoup(resp.text, "html.parser")
      # 示例:假设目标文本在class为company-overview的div内
      overview_content = soup.find("div", class_="company-overview").get_text(strip=True)
      print(overview_content)
      
    • 若用XPath定位(lxml库):
      from lxml import etree
      import requests
      
      resp = requests.get("你的目标网页URL")
      tree = etree.HTML(resp.text)
      # 示例:替换为实际的XPath路径
      overview_text_list = tree.xpath("//div[@class='company-overview']//text()")
      overview_content = "".join(overview_text_list).strip()
      print(overview_content)
      
  • 处理动态渲染内容
    如果直接请求网页源码里找不到目标文本,说明内容是JavaScript动态加载的,改用浏览器自动化工具:
    以Selenium为例:

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    import time
    
    driver = webdriver.Chrome()
    driver.get("你的目标网页URL")
    time.sleep(2)  # 等待页面渲染完成,可替换为显式等待更可靠
    # 替换为实际的元素定位方式(CLASS_NAME/ID/XPath等)
    overview_elem = driver.find_element(By.CLASS_NAME, "company-overview")
    print(overview_elem.text)
    driver.quit()
    
  • 验证页面源码内容
    先导出网页源码确认目标文本是否存在,排除选择器错误:

    import requests
    
    resp = requests.get("你的目标网页URL")
    with open("page_source.html", "w", encoding="utf-8") as f:
        f.write(resp.text)
    

    打开生成的HTML文件,搜索公司概述相关内容,若不存在则说明是动态加载问题,若存在则是选择器定位错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 13:21:10