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

Safari开发者工具Elements与Resources差异及requests爬虫内容不符的疑问

为什么requests返回的是Resources内容而非Elements内容?

这事儿我太熟了!你遇到的本质是**静态HTML(服务器返回)和动态渲染DOM(浏览器生成)**的差异,咱们把问题拆解清楚:

先搞懂Safari里Elements和Resources的区别

  • Resources里的内容:是服务器直接返回的原始HTML代码,也就是你用requests.get拿到的东西——这是浏览器刚收到的“毛坯房”。
  • Elements里的内容:是浏览器执行完页面所有JavaScript后,最终渲染出来的完整DOM结构——相当于“装修好的房子”,很多元素是JS动态生成、插入进去的,原始HTML里根本没有。

Chrome的开发者工具其实是把这俩合并/重命名了:Chrome的Elements对应Safari的Elements,Chrome的Sources面板里的HTML文件对应Safari的Resources,本质是一回事。

为什么requests拿不到Elements里的内容?

requests只是个HTTP请求工具,它只会发送请求、接收服务器返回的静态数据,不会执行任何JavaScript代码。那些你在Elements里看到的目标元素,是页面加载完成后,由页面内的JS脚本动态创建并插入DOM的,所以requests自然拿不到这些内容。

怎么解决这个问题?

有两种常见的思路,根据你的场景选:

思路1:直接请求数据接口(推荐)

很多网站的动态内容是通过AJAX(XHR/Fetch)请求从后端API获取的,你可以直接抓这个接口来拿数据,比爬渲染后的页面高效得多:

  1. 打开浏览器开发者工具的Network面板
  2. 刷新页面,筛选XHR或Fetch类型的请求
  3. 逐个查看请求的响应内容,找到包含你要的时间列表(bought-wrapper-mod__create-time___yNWVS)的接口
  4. 用requests直接请求这个接口,注意带上必要的Cookie、请求头参数

思路2:用无头浏览器模拟真实渲染

如果找不到接口或者接口有复杂的验证逻辑,那就用工具模拟真实浏览器的行为,让它帮你执行JS并渲染出最终DOM。这里推荐用Playwright(比Selenium更轻量):

先安装Playwright:

pip install playwright
playwright install chromium

然后修改你的代码:

from bs4 import BeautifulSoup
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(headless=True)  # headless=True表示不显示浏览器窗口
    page = browser.new_page()
    
    # 先登录(模拟你的post请求)
    page.goto("https://login.xxxx.com/")
    page.fill('input[name="TPL_username"]', "xxxx")
    page.fill('input[name="TPL_password"]', "1xxx")
    page.click('button[type="submit"]')  # 假设登录按钮是submit类型,根据实际情况调整
    
    # 跳转到目标页面
    page.goto("http://www.xxxx.com")
    
    # 获取渲染后的完整HTML
    content = page.content()
    browser.close()
    
    soup = BeautifulSoup(content, "html.parser")
    # 注意:你原来的代码里用了bs.find_all,但变量名是soup,这里要修正
    timelists = soup.find_all("span", {"class": "bought-wrapper-mod__create-time___yNWVS"})
    print(timelists)

最后提个小bug

你原来的代码里有个拼写错误:timelists = bs.find_all(...)这里的bs应该是soup,不然会报NameError,记得修正哦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:24:02