我在学习爬行着巨蟒的网络。我有一个有很多URL的CSV文件。使用python2.7和selenium,我目前正在抓取这些网站的数据,如:车身宽度(以像素为单位)、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文件中相比,我将拥有更干净、更少错误敏感性、更快和更灵活的爬虫器。
所以我的问题是:
对不起,如果我的帖子不够具体,但我的问题得到回答将极大地帮助我!
发布于 2017-03-10 10:57:37
干净的代码很好。我希望将常见的函数放到类似于crawler_library.py的东西中,然后让您的特定脚本导入它们需要的函数。
关于您的假设,这不是公理式的真代码--不同脚本中的代码在功能上与一个脚本中的代码没有什么不同。然而,从现实的角度来看,这是普遍正确的。它更容易维护和改进,对于大多数人来说,将代码放入函数可以让他们模块化他们想要做的事情,让他们更容易理解,等等。
发布于 2017-03-10 10:58:44
如果你所说的“更好”是指更整洁、更干净的代码。是的,会更整洁。如果您有其他web爬行项目,不仅仅是这个项目,将它们作为模块导入也是很棒的,这意味着它们是可重用的,并且是解耦的。能够无缝地切换模块进出是一件好事。
https://stackoverflow.com/questions/42716655
复制相似问题