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

Python爬取training.gov.au地址标签数据失败求助

解决动态加载页面的地址信息爬取问题

你碰到的核心问题是网页的「Addresses」标签内容是JavaScript动态加载的:用requests获取的静态HTML里只有「Summary」标签的内容,其他标签的数据是用户点击标签后,页面才通过异步请求从后端拉取并渲染出来的,所以BeautifulSoup找不到对应元素。

下面给你一套适合新手的完整解决方案:

解决方案:用Selenium模拟浏览器爬取

Selenium是能模拟真实浏览器操作的工具,可以自动处理JS加载、页面交互,不用手动分析复杂的异步请求,适合快速解决动态内容爬取问题。

步骤1:安装必要工具

  • 安装Selenium库:打开命令行,运行 pip install selenium
  • 下载ChromeDriver(需和你的Chrome浏览器版本对应):
    1. 查看Chrome版本:打开Chrome → 设置 → 关于Chrome
    2. 下载对应版本的ChromeDriver,解压后把exe文件放到Python安装目录,或者添加到系统环境变量(这样代码里不用写文件路径)

步骤2:完整爬取代码

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

# 目标网页URL
url = 'https://training.gov.au/Organisation/Details/90003'

# 初始化Chrome浏览器驱动
driver = webdriver.Chrome()

try:
    # 打开目标网页
    driver.get(url)
    
    # 等待页面加载完成,点击「Addresses」标签(对应id为rtoDetails-tab-4的元素)
    # 用WebDriverWait等待元素可点击,避免页面没加载完就操作
    address_tab = WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.ID, 'rtoDetails-tab-4'))
    )
    address_tab.click()
    
    # 等待「Addresses」标签对应的内容加载完成(等待id为rtoDetails-4的元素可见)
    address_content = WebDriverWait(driver, 10).until(
        EC.visibility_of_element_located((By.ID, 'rtoDetails-4'))
    )
    
    # 提取并打印内容
    print(address_content.text.strip())

finally:
    # 不管爬取成功与否,最后关闭浏览器,避免残留进程
    driver.quit()

代码关键部分解释

  • webdriver.Chrome():启动Chrome浏览器,模拟真实用户浏览行为
  • WebDriverWait(driver, 10):设置最长等待10秒,直到目标元素满足条件(解决页面加载慢导致找不到元素的问题)
  • EC.element_to_be_clickable:确保标签可点击后再执行点击操作,避免空点击
  • EC.visibility_of_element_located:等待内容区域完全可见,确保动态数据已经渲染完成

为什么之前的requests+BeautifulSoup不行?

用requests获取的是服务器返回的初始静态HTML,你可以打开浏览器的「查看网页源代码」(不是开发者工具的Elements面板)验证:里面只有rtoDetails-1的内容,rtoDetails-4的内容根本不存在——这部分是你点击标签后,页面通过JS发送新请求拿到数据,再动态插入到页面里的,requests无法模拟这个交互过程,所以爬不到。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 17:15:09