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

Python Selenium爬虫超时求助:地产数据爬取失败

排查Selenium TimeoutException及地产数据爬取问题

针对你遇到的超时问题,结合新手爬取这类地产网站的常见坑,给你几个具体的排查方向:

1. 确认元素定位是否准确

  • 打开目标网站的开发者工具(F12),找到你要提取的Land_Use、Property_Class等元素,核对代码里用的XPath/CSS选择器是否和实际元素匹配。很多网站的元素会有动态生成的class或id(比如带随机字符串),直接抄静态路径肯定找不到。
  • 如果目标数据在iframe里,必须先切换到对应iframe才能定位元素,代码示例:
    iframe = driver.find_element(By.TAG_NAME, 'iframe')
    driver.switch_to.frame(iframe)
    # 之后再定位目标元素
    

2. 检查页面交互逻辑是否完整

  • 你只提到把Parcel ID填入对应列,但有没有触发搜索操作?有些网站需要点击「查询」按钮或按回车键才会加载数据。如果只是填了ID就直接提取数据,页面根本没开始加载目标内容,自然会超时。
  • 填完ID后,可以加一步点击搜索按钮或模拟回车的操作:
    input_box = driver.find_element(By.ID, 'parcel-id-input')
    input_box.send_keys(parcel_id)
    input_box.send_keys(Keys.ENTER)  # 或者点击搜索按钮元素
    

3. 调整等待策略,适配异步加载

  • 这类地产网站大多是异步加载数据——页面HTML骨架加载完了,但实际地产数据还在请求中。用全局等待或固定sleep都不靠谱,应该用显式等待针对每个目标元素设置等待:
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    # 等待Land_Use元素出现,最长等20秒
    land_use = WebDriverWait(driver, 20).until(
        EC.presence_of_element_located((By.XPATH, '//*[@id="land-use"]'))
    ).text
    
  • 如果页面加载慢,还可以调整浏览器加载策略,让Selenium不用等所有资源加载完:
    options = webdriver.ChromeOptions()
    options.page_load_strategy = 'eager'  # 只等待DOM加载完成
    driver = webdriver.Chrome(options=options)
    

4. 排查反爬限制

  • 很多政府类网站会检测Selenium特征,识别出自动化工具后就不返回数据。可以试试添加这些配置绕过检测:
    options = webdriver.ChromeOptions()
    options.add_argument('--headless=new')  # 无头模式,可选
    options.add_argument('--disable-blink-features=AutomationControlled')
    options.add_experimental_option("excludeSwitches", ["enable-automation"])
    options.add_experimental_option('useAutomationExtension', False)
    driver = webdriver.Chrome(options=options)
    # 还可以加随机等待,模拟人类操作
    import random
    import time
    time.sleep(random.uniform(1, 3))
    

5. 用调试手段定位问题

  • 在超时的代码前加截图,查看页面状态:driver.save_screenshot('debug.png'),比如是不是页面跳转到了验证码页,或者搜索后显示「无数据」,这些都会导致元素找不到超时。
  • 打印页面源码:print(driver.page_source),搜索你要的字段,确认目标数据是否真的在页面里。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 18:13:13