Advertisement

使用Selenium从中国经济社会发展数据库爬取数据并优化获取速度以解决StaleElementReferenceException问题

阅读量:

点赞发Nature
关注中Science

先前版本的爬虫测试代码可在此处获取
第一版爬取代码

对前一版本进行了若干测试,发现存在两个主要问题

采用time.sleep()设定固定等待时间的方式,使得数据抓取效率偏低,同时网络状况不佳等外部因素也可能引发异常中断

当处理大规模数据采集任务时,系统容易触发StaleElementReferenceException异常

针对上述问题,对相关代码进行了相应改进

复制代码
    def find_table(indicator, region, year):
    wait = WebDriverWait(
        browser,
        40,
        ignored_exceptions=(NoSuchElementException, StaleElementReferenceException),
    )
    browser.find_element_by_name("IndicateName").clear()
    browser.find_element_by_name("IndicateName").send_keys(indicator)
    browser.find_element_by_name("Indi

全部评论 (0)

还没有任何评论哟~