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

使用Selenium+WebDriver实现谷歌新闻随机分类文章点击问题求助

问题分析与修复方案

核心问题点

  1. 浏览器自动关闭/崩溃:默认Selenium执行完脚本就会关闭浏览器,另外ChromeDriver和Chrome版本不匹配也会直接导致崩溃;
  2. 绝对XPath完全不可靠:谷歌新闻的DOM结构(比如yDmH0d、c2642-panel这类id)是动态生成的,刷新一次页面就会变,用这种固定层级的XPath根本没法稳定定位元素;
  3. 硬编码sleep太脆弱:固定5秒等待没法适配不同网络速度,页面没加载完就找元素会直接抛出异常,脚本终止后浏览器也跟着关闭。

修复后的代码

import random
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

# 修正了BUSINESS参数里的hl=enUS为hl=en-US,避免URL格式错误
BUSINESS = 'CAAqJggKIiBDQkFTRWdvSUwyMHZNRGx6TVdZU0FtVnVHZ0pWVXlnQVAB?hl=en-US&gl=US&ceid=US%3Aen'
WORLD = 'CAAqJggKIiBDQkFTRWdvSUwyMHZNRGx1YlY4U0FtVnVHZ0pWVXlnQVAB?hl=en-US&gl=US&ceid=US%3Aen'

categories = [WORLD, BUSINESS]
random_category = random.choice(categories)

# 配置Chrome选项,解决浏览器关闭和崩溃问题
options = webdriver.ChromeOptions()
options.add_experimental_option("detach", True)  # 脚本跑完后浏览器保持打开
options.add_argument("--disable-blink-features=AutomationControlled")  # 避免被谷歌反爬检测
options.add_argument("--start-maximized")  # 最大化窗口,防止布局变化影响元素定位

driver = webdriver.Chrome(options=options)
wait = WebDriverWait(driver, 10)  # 显式等待最长10秒,比固定sleep靠谱

try:
    # 跳转到随机分类的谷歌新闻页面
    driver.get(f"https://news.google.com/topics/{random_category}")
    
    # 等待第一篇文章加载完成并可点击,用通用定位适配所有分类
    first_article = wait.until(EC.element_to_be_clickable((By.XPATH, "//article//a[contains(@href, '/articles/')]")))
    first_article.click()
    
    # 可选:等待文章详情页标题加载完成,确认跳转成功
    wait.until(EC.presence_of_element_located((By.TAG_NAME, "h1")))
    
finally:
    # 不需要自动关闭的话就注释掉下面一行,因为detach已经让浏览器保持打开
    # driver.quit()
    pass

关键修复说明

  • 浏览器保持打开:通过detach参数让脚本执行结束后不关闭浏览器,方便调试;
  • 通用元素定位:用//article//a[contains(@href, '/articles/')]这种相对XPath,不管分类如何变化,都能准确找到新闻文章的链接;
  • 显式替代固定sleep:WebDriverWait会自动等待元素可点击,避免因页面加载慢导致的元素找不到异常;
  • 版本匹配:务必确保ChromeDriver的版本和你本地Chrome浏览器的版本完全一致,这是解决浏览器崩溃的核心前提。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 21:47:45