首页 > 解决方案 > 我应该为我的网络抓取项目选择哪种项目结构方法?

问题描述

我想创建从不同网页抓取数据的脚本,然后将它们加载到数据库中,我想以适当的方式从 A 到 Z 执行此操作。因此,在我开始编写代码之前,我想将我的小项目分成更小的块,所以一开始一切看起来都干净利落。据我所知,这被称为“模块化编程”,它是一种让一切井井有条的好技术。在我的项目中,我想从 4 页中抓取数据(工作机会)。它们相似但不相同,因此它们中的每一个都需要编写不同的函数。对于某些人,我只需要从 api 中抓取数据,而对于某些人,我需要使用更复杂的方式,例如 Selenium。我的问题是:我的文件夹结构应该如何?创建包是否更好让我们称之为“网站”

websites/
├─ __init__.py
├─ website_1.py
├─ website_2.py
├─ website_3.py
├─ website_4.py
LICENSE
README.md

还是将模块拆分为“步骤”更好,最简单的形式如下所示:

job_offers/
├─ scraping_data.py
├─ loading_data_into_database.py
├─ __init__.py
LICENSE
README.md

在第一个示例中,每个网站模块都有自己的函数、常量变量等,因此每个网站相关的一切都发生在适当的模块中。另一方面,在第二个中,一切都是混合的,即scraping_data.py模块包含所有网站的函数、常量变量。如果上述示例都没有做好,请随时提出您自己的解决方案。

标签: pythonmodulehierarchydirectory-structureproject-structure

解决方案


这主要取决于您或您正在编码的组织中的使用情况。我会亲自混合您的解决方案,如下所示:

main.py
loading_data_into_db.py
websites/
├─ __init__.py
├─ website_1.py
├─ website_2.py
├─ website_3.py
├─ website_4.py
LICENSE
README.md

您的 main 将“链接所有内容”并调用不同的必要功能。您可以在这里找到一些建议: https ://docs.python-guide.org/writing/structure/ 但主要建议是:尽量不要多余


推荐阅读