Python3爬虫增强版:健壮处理异常,批量抓取Excel
需积分: 45 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'的文件中。这使得爬虫更加健壮,适合处理动态网页或者频繁变动的网页内容,提高了程序的稳定性和效率。
2021-01-20 上传
2020-12-17 上传
2023-09-17 上传
2023-02-25 上传
虚云居士
- 粉丝: 1
- 资源: 8
最新资源
- NIST REFPROP问题反馈与解决方案存储库
- 掌握LeetCode习题的系统开源答案
- ctop:实现汉字按首字母拼音分类排序的PHP工具
- 微信小程序课程学习——投资融资类产品说明
- Matlab犯罪模拟器开发:探索《当蛮力失败》犯罪惩罚模型
- Java网上招聘系统实战项目源码及部署教程
- OneSky APIPHP5库:PHP5.1及以上版本的API集成
- 实时监控MySQL导入进度的bash脚本技巧
- 使用MATLAB开发交流电压脉冲生成控制系统
- ESP32安全OTA更新:原生API与WebSocket加密传输
- Sonic-Sharp: 基于《刺猬索尼克》的开源C#游戏引擎
- Java文章发布系统源码及部署教程
- CQUPT Python课程代码资源完整分享
- 易语言实现获取目录尺寸的Scripting.FileSystemObject对象方法
- Excel宾果卡生成器:自定义和打印多张卡片
- 使用HALCON实现图像二维码自动读取与解码