【发布时间】:2017-03-10 10:55:13
【问题描述】:
我正在学习使用 python 进行网络爬虫。我有一个包含很多 URL 的 CSV 文件。我目前正在使用 python 2.7 和 selenium 抓取这些网站以提取数据,例如:body width(以像素为单位)、HTTP 响应、页面加载速度 和 meta name="viewport" 标签。
然后我将脚本的结果导出到一个 CSV 文件,其中每一列都包含提取的数据类型(见下文)。我计划通过编写新的爬虫来提取更多类型的数据。
我当前的脚本如何将数据导出到 CSV 文件 -> CSV 文件如下所示:
Website | body width | HTTP response | load speed (in secs) | Viewport
www.url1.com | 690 | 200 | 2 | No
www.url2.com | 370 | 404 | 0.5 | Yes
但是,由于添加的每个新函数都有更多的代码行,我的脚本(一个 .py 文件)变得越来越长,因此变得更加复杂。我担心我添加的功能越多,它会变得越慢,对错误越敏感。我怎么看,我现在有两个选择:
选项 1. 继续向现有脚本文件写入新的爬虫函数
选项 2. 为不同的脚本文件编写新的爬虫函数:我正在考虑,从现在开始,在单独的 .py 文件上编写新的爬虫程序(1 个爬虫程序 = 1 个 .py 文件)并将我当前的脚本(一个 .py 文件)拆分为多个爬虫(多个 .py 文件)。
然后我可以单独运行每个爬虫并将所有爬虫的结果写入一个 CSV 文件(如上图所示)。通过使用多个爬虫文件,(假设),与我现在拥有的将所有爬虫放在一个 .py 文件中相比,我认为我将拥有更清洁、更不敏感、更快和更灵活的爬虫。
所以我的问题:
- 选项 1 和 2 的优缺点是什么?
- 一种选择是否比另一种更好,如果是,为什么?
- 我在选项 2 中的假设是否正确?
如果我的帖子可能不够具体,请原谅,但回答我的问题将极大地帮助我!
【问题讨论】:
标签: python-2.7 csv web-crawler