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

如何用Python爬虫获取span标签内的style属性值?

问题解决:动态渲染导致爬取的HTML缺失style属性

问题原因

你遇到的是动态内容渲染问题:浏览器中看到的style属性是页面加载后由JavaScript动态添加的,而requests只能获取服务器返回的静态初始HTML,无法捕获JS执行后的DOM变化,所以爬取到的span标签没有style属性。

解决方案:使用模拟浏览器执行JS

用支持JavaScript渲染的工具(比如Selenium)来获取完整的页面内容,下面是示例代码:

  1. 先安装依赖:
pip install selenium

同时需要下载对应浏览器的驱动(比如ChromeDriver),确保驱动版本和浏览器版本匹配。

  1. 完整代码:
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

# 配置无头模式(无需打开可视化浏览器窗口)
chrome_options = Options()
chrome_options.add_argument("--headless=new")

# 启动浏览器并加载页面
driver = webdriver.Chrome(options=chrome_options)
driver.get('https://www.ilmakiage.co.il/mineral-lip-pencil-4043')

# 获取JS执行后的完整页面源码
page_source = driver.page_source
driver.quit()

# 解析页面
soup = BeautifulSoup(page_source, 'lxml')

# 遍历所有目标span,判断显示状态
for span in soup.find_all('span', class_='qtyValidate_color'):
    style_attr = span.get('style', '')
    if 'display: block' in style_attr:
        print("Ooops, 'הכמות המבוקשת אינה קיימת' the stock is empty. Open the app later. You will see the 'Shopping time' phrase when the lipstick be in stock")
        break
else:
    print('Shopping time')

额外思路

如果想更高效,也可以通过浏览器开发者工具的「网络」面板,分析网站获取库存状态的AJAX接口,直接调用接口获取数据,避免模拟浏览器的开销。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 00:20:30