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

Python网页爬取无法获取目标网站指定class内容的方案咨询

解决Bloxflip Crash页面动态内容爬取问题

问题原因

目标元素是通过JavaScript动态渲染生成的,requests获取的是服务器返回的初始静态HTML,此时动态内容还未加载,所以BeautifulSoup找不到对应的元素。

解决方案

方法一:使用Selenium模拟浏览器加载页面

Selenium会模拟真实浏览器行为,执行页面的JavaScript代码,获取渲染后的完整页面内容。

步骤:

  1. 安装Selenium:pip install selenium
  2. 下载对应浏览器的驱动(如ChromeDriver,需与浏览器版本匹配)
  3. 编写代码:
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

def scrape():
    # 初始化Chrome浏览器驱动
    driver = webdriver.Chrome()
    driver.get("https://bloxflip.com/crash")
    
    try:
        # 等待目标元素加载完成,最多等待10秒
        WebDriverWait(driver, 10).until(
            EC.presence_of_element_located((By.CLASS_NAME, "lastestHistory"))
        )
        # 获取渲染后的页面源码
        page_source = driver.page_source
        doc = BeautifulSoup(page_source, "html.parser")
        crash = doc.find_all("div", class_="gameLatest gameLatestHorizontal lastestHistory")
        print(crash)
    finally:
        # 关闭浏览器
        driver.quit()

scrape()

方法二:直接调用网站API(更高效)

动态加载的内容通常来自后端API,可通过浏览器开发者工具抓包找到对应接口,直接请求API获取数据:

  1. 打开浏览器开发者工具(F12),切换到「Network」标签
  2. 刷新页面,筛选「XHR」或「Fetch」类型的请求,找到返回Crash历史数据的接口
  3. 复制该接口的URL,用requests直接请求,注意带上必要的请求头(如User-Agent,部分接口可能需要登录态Cookie)

示例代码(实际接口需自行抓包确认):

import requests

def scrape_api():
    # 替换为实际抓包得到的API接口URL
    url = "https://api.bloxflip.com/crash/history"
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
        # 若需要Cookie,可从浏览器开发者工具中复制对应字段
    }
    response = requests.get(url, headers=headers)
    if response.status_code == 200:
        data = response.json()
        print(data)
    else:
        print(f"请求失败,状态码:{response.status_code}")

scrape_api()

注意事项

  • 部分网站有反爬机制,需控制请求频率,模拟真实浏览器的请求头
  • 若网站使用Cloudflare验证,可使用undetected-chromedriver替代普通ChromeDriver规避检测

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 09:39:22