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

Python网络爬取:如何用Selenium实现无刷新实时数据爬取

无刷新实时爬取泰国气象厅网站数据的实现方案

你当前的代码每次循环都重新加载页面并刷新,效率较低。以下两种方案可以实现无刷新获取实时数据:

方案一:基于Selenium的无刷新查询(无需页面刷新)

只需要首次加载页面,之后每次循环直接重新查询目标元素即可——如果页面是通过AJAX后台更新DOM内容,重新查找元素就能拿到最新数据,无需刷新整个页面。

修改后的代码:

from selenium import webdriver
import time
from selenium.webdriver.common.by import By

driver = webdriver.Chrome("/path/to/chromedriver")
Data = []
num = 0
url = 'https://www.tmd.go.th/en/'

# 仅首次加载页面
driver.get(url)
time.sleep(2)  # 等待首次页面渲染完成

while num < 2:
    # 直接重新定位元素,获取最新文本
    temp = driver.find_element(By.XPATH,'/html/body/main/div[2]/div/div[2]/div[1]/div/div[2]/h1/span').text
    Data.append(temp)
    print(Data)
    
    # 等待数据更新(根据页面实际更新频率调整时长)
    time.sleep(5)
    num += 1
else:
    print('finish')

driver.quit()

如果页面DOM不会自动更新,还可以通过执行JavaScript触发局部刷新,比如模拟页面内的刷新按钮点击(若存在):

# 假设页面有刷新按钮,用定位器找到后点击
refresh_btn = driver.find_element(By.CSS_SELECTOR, ".refresh-button")
refresh_btn.click()
time.sleep(1)  # 等待局部更新完成

方案二:直接调用网站API(推荐,效率更高)

通过浏览器开发者工具抓包,找到网站获取实时数据的API接口,直接用requests库请求接口,完全无需使用Selenium,效率远高于页面渲染方式。

示例代码(需替换为实际抓包得到的API地址和数据提取逻辑):

import requests
import time

Data = []
num = 0
# 实际需通过抓包获取真实API地址
api_url = "https://www.tmd.go.th/api/weather/current"

while num < 2:
    # 设置请求头模拟浏览器访问,避免被拦截
    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"
    }
    response = requests.get(api_url, headers=headers)
    
    if response.status_code == 200:
        weather_data = response.json()
        # 根据API返回的JSON结构提取温度(需实际调整)
        temp = weather_data['data']['temperature']
        Data.append(str(temp))
        print(Data)
    
    time.sleep(5)  # 控制请求频率,避免被封禁
    num += 1
else:
    print('finish')

注意事项

  • 方案一中,若页面元素定位使用的是绝对XPATH,建议改为相对定位(比如CSS选择器),避免页面结构变动导致定位失效。
  • 方案二中,抓包时需注意API的请求参数、请求头(如Referer、User-Agent),确保请求能正常返回数据。
  • 无论哪种方案,都需设置合理的请求间隔,避免给目标网站造成服务器压力,防止IP被封禁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 10:12:59