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

使用Selenium-BeautifulSoup爬取动态页面无法加载实际文本求助

问题描述

我正在爬取一个动态页面(该页面从数据库加载结果进行展示),但仅能获取到文本元素的占位符而非实际文本。目标页面地址为:https://www.bricklink.com/v2/search.page?q=8084#T=S

预期结果/实际结果

预期结果:

<table>
  <tr>
    <td class="pspItemClick">
      <a class="pspItemNameLink" href="www.some-url.com">The Name</a>
      <br/>
      <span class="pspItemCateAndNo">
        <span class="blcatList">Catalog Num</span> : 1111
      </span>
    </td>
  </tr>
</table

实际结果:

<table>
  <tr>
    <td class="pspItemClick">
      <a class="pspItemNameLink" href="[%catalogUrl%]">[%strItemName%]</a>
      <br/>
      <span class="pspItemCateAndNo">
        <span class="blcatList">[%strCategory%]</span> : [%strItemNo%]
      </span>
    </td>
  </tr>
</table

已尝试的解决方案

  • 首先尝试使用requests库加载页面,但由于这是动态页面,该方法无效。
def load_page(url: str) -> BeautifulSoup:
    headers = {
        'Access-Control-Allow-Origin': '*',
        'Access-Control-Allow-Methods': 'GET',
        'Access-Control-Allow-Headers': 'Content-Type',
        'Access-Control-Max-Age': '3600',
        'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0'
    }
    req = requests.get(url, headers=headers)
    return BeautifulSoup(req.content, 'html.parser')
  • 之后尝试使用Selenium的webdriver加载动态内容:
def html_source_from_webdriver(url: str, wait: int = 0) -> BeautifulSoup:
    browser = webdriver.Chrome(service=selenium_chrome_service, chrome_options=options)
    browser.implicitly_wait(wait)
    browser.get(urljoin(ROOT_URL, url))

    page_source = browser.page_source
    return BeautifulSoup(page_source, features="html.parser")

两种方法得到的结果相同。尝试了0-15不同数值的implicitly_wait,均无效。还尝试了browser.set_script_timeout(<timeout>),同样没有效果。

更新

后续又尝试了以下方法,但仍未解决问题:

  • 在browser.get(...)调用后添加time.sleep()
  • 使用browser.set_page_load_timeout()——本不抱期望,但仍进行了尝试

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 14:13:14