Python3爬虫增强版:健壮处理异常,批量抓取Excel

需积分: 45 29 下载量 66 浏览量 更新于2024-09-08 4 收藏 1KB TXT 举报
在Python3爬虫编程中,实现一个高效的爬虫程序时,遇到错误是常见的挑战。本篇代码示例展示了如何在爬取网页信息时,通过增加容错机制来确保程序能够持续运行并避免因个别错误导致整体程序中断。主要关注点在于使用Selenium库进行网页抓取,并利用异常处理来处理可能出现的错误。 首先,导入了必要的模块,如Selenium WebDriver、WebDriverWait、sys、csv、time、html、pandas等,它们分别为网页自动化测试、等待、系统操作、数据处理和数据分析提供了支持。同时,通过`filterwarnings`函数,忽略了警告信息,以便专注于核心爬虫逻辑。 代码的核心部分是for循环,它从指定的起始值8547开始,直到100000,每次迭代都会尝试访问URL(假设为'http://www.xxxxxxxxx.com/v_id='+str(i)),这里使用了`get`方法。为了增加稳定性,设置了一个0.5秒的延迟时间(time.sleep(0.5)),用于处理服务器响应或网络请求的时间。 在每个请求中,尝试找到两个XPath元素,如果能找到,就将元素文本写入CSV文件。`try-except`结构被用来捕获可能出现的两个特定异常:`NoSuchElementException`(找不到元素)和`TimeoutException`(超时)。当这些异常发生时,程序会打印相应的错误消息,而不是直接终止。 特别值得注意的是,即使遇到`NoSuchElementException`,代码并不会中断,而是通过`except`块继续执行,将错误信息输出后继续下一次迭代。`finally`部分原本的代码(`driver.close()`)被注释掉,这是因为即使有异常发生,也应在所有循环结束后关闭浏览器,以释放资源。 `with open`语句用于安全地打开CSV文件进行追加写入,`csv.writer`对象将抓取的数据一行写入文件。`print`语句用于展示当前爬取到的元素文本,即使出错也会显示。 通过这种方式,该爬虫在遇到错误时能继续执行,直至完成预定数量的爬取任务,然后将结果输出到一个名为'filename.csv'的文件中。这使得爬虫更加健壮,适合处理动态网页或者频繁变动的网页内容,提高了程序的稳定性和效率。