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

爬取Vudu电影价格时指定class的Div容器返回空值问题

解决Vudu电影价格爬取时Div容器提取为空的问题

我来帮你排查这个问题——你遇到的情况在动态网站爬取里很常见,核心原因大概率是目标价格内容是通过JavaScript动态渲染生成的,而BeautifulSoup只能解析页面初始加载的静态HTML,拿不到JS后续插入到DOM中的内容。

问题拆解

当你用requests.get()请求页面时,返回的只是服务器最初发送的静态骨架HTML,Vudu的价格信息很可能是页面加载完成后,通过AJAX请求拉取数据再由前端JS插入到页面里的。这就导致你用find_all查找row nr-p-0 nr-mb-10类的div时,静态HTML里根本没有这个元素,自然返回空列表。

另外也不能排除反爬因素:直接用requests裸请求时,没有携带浏览器标识的请求头,服务器可能返回不完整内容或者反爬页面。

可行解决方案

这里给你两种实用的处理思路:

1. 模拟浏览器渲染动态内容(推荐用Selenium)

Selenium可以模拟真实浏览器加载页面,等JS执行完毕后再获取完整的DOM内容,完美解决动态渲染问题。示例代码如下:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from bs4 import BeautifulSoup

url = "https://www.vudu.com/content/movies/details/title/835625"

# 初始化Chrome浏览器驱动(需提前下载对应版本的ChromeDriver并配置路径)
driver = webdriver.Chrome()
driver.get(url)

# 等待目标元素加载完成,最多等待10秒
try:
    WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.CLASS_NAME, "row.nr-p-0.nr-mb-10"))
    )
    # 获取渲染后的完整页面HTML
    page_source = driver.page_source
    html_soup = BeautifulSoup(page_source, 'html.parser')
    price_container = html_soup.find_all('div', class_='row nr-p-0 nr-mb-10')
    print(price_container)
finally:
    # 用完记得关闭浏览器
    driver.quit()

2. 尝试添加请求头+捕获AJAX接口

如果不想用Selenium,你可以先试试给requests添加模拟浏览器的请求头,看看是否能拿到完整内容:

import requests
from bs4 import BeautifulSoup

url = "https://www.vudu.com/content/movies/details/title/835625"
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"
}
response = requests.get(url, headers=headers)
html_soup = BeautifulSoup(response.text, 'html.parser')
price_container = html_soup.find_all('div', class_='row nr-p-0 nr-mb-10')
print(price_container)

如果添加头还是不行,那就肯定是动态加载的问题了。这时可以打开浏览器开发者工具(F12),切换到Network标签刷新页面,观察XHR/Fetch请求,找到直接返回价格数据的接口,直接请求这个接口拿数据,效率会更高。

额外提醒

爬取前请务必遵守Vudu的robots.txt协议和网站使用条款,避免频繁请求触发反爬机制导致IP被封禁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:03:13