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

Python爬取网页div内容遇问题:目标div内部内容无法获取

解决动态内容爬取不到的问题

问题原因

你通过requests.get()获取的是服务器返回的静态HTML源码,但目标div的内容是页面加载后通过JavaScript动态渲染生成的,静态源码里并没有这部分内容,所以BeautifulSoup无法提取到。

解决方案

方法1:用Selenium模拟浏览器渲染

Selenium可以模拟真实浏览器加载页面,等待JS执行完成后再获取完整的页面内容。

先安装依赖:

pip install selenium

示例代码:

from bs4 import BeautifulSoup
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

# 初始化Chrome浏览器(需提前安装对应版本的ChromeDriver)
driver = webdriver.Chrome()
url = "https://gogohd.net/download?id=MTA2MjQ=&token=fU0FFpfwZ8OMWSbHJ11VQg&expires=1677243941"

try:
    driver.get(url)
    # 等待目标div加载完成,超时10秒
    WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.ID, "content-download"))
    )
    # 获取渲染后的完整页面源码
    page_source = driver.page_source
    soup = BeautifulSoup(page_source, 'html.parser')
    # 定位目标div并提取内容
    target_div = soup.find('div', id='content-download')
    print(target_div.get_text(strip=True))
finally:
    # 关闭浏览器
    driver.quit()

方法2:直接调用后端API接口

打开浏览器开发者工具(F12),切换到Network标签页,刷新页面后查看XHR/Fetch请求,找到返回剧集数据的接口,直接请求该接口获取数据,这种方式比模拟浏览器更高效。

示例代码(需替换为实际找到的接口信息):

import requests

api_url = "你找到的API接口地址"
headers = {
    # 复制浏览器请求头中的关键信息,比如User-Agent、Referer等
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36"
}
response = requests.get(api_url, headers=headers)
data = response.json()
# 处理返回的JSON数据提取剧集信息
print(data)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 03:08:15