python - 我应该为我的网络抓取项目选择哪种项目结构方法?
问题描述
我想创建从不同网页抓取数据的脚本,然后将它们加载到数据库中,我想以适当的方式从 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
模块包含所有网站的函数、常量变量。如果上述示例都没有做好,请随时提出您自己的解决方案。
解决方案
这主要取决于您或您正在编码的组织中的使用情况。我会亲自混合您的解决方案,如下所示:
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/ 但主要建议是:尽量不要多余
推荐阅读
- javascript - 如何在 Nodejs 中正确使用相等运算符
- javascript - GET 或 POST 请求 => 很长的 URL
- c# - 反序列化日期时间字符串而不进行任何格式操作
- javascript - 在 Visual Studio 2019 中进行发布构建时,有没有办法从 js 文件中删除调试器和 console.log 语句?
- c++ - 如何正确地将点积与 MPI_Scatter 并行化?
- javascript - 玩家靠近时子弹弯曲
- discord.js - 带有 id 的 discord.js V12 userinfo 命令
- c# - Aspnet Zero Nswag 生成服务代理
- python - python-将多个标题写入csv文件
- android - Android - 从片段到适配器的侦听器值?