ccuffs/uffs-ru-scraping

一个用于自动化获取乌福斯大学餐厅数据的库

v1.0.1 2022-09-19 12:16 UTC

This package is auto-updated.

Last update: 2024-09-21 15:37:36 UTC


README


uffs-ru-scraping

一个用于抓取乌福斯联邦大学校园餐厅菜单的PHP包。本包的目的是允许创建包含校园餐厅菜单信息的API。

重要:如果需要,请在此处放置对项目用户非常重要的消息。

✨ 功能

  • 自动从乌福斯大学网站列表获取菜单信息;
  • 根据日期获取网站发布的菜单。例如:18/07/2022
  • 根据星期几获取发布的菜单。例如:星期一
  • 结构化数据,便于处理。

🚀 开始

1. 将包添加到您的项目中

在PHP项目根目录中运行:通常,开始的第一步是安装运行项目所需的依赖项。运行

composer require ccuffs/uffs-ru-scraping

所有依赖项将被安装。

2. 获取菜单

要获取任何餐厅的菜单,您将使用 UniversityRestaurantUFFS 类。该类的实例具有获取菜单的多种方法。

最简单的方法是通过链接或校园名称获取网站上所有可用菜单的链接。

$ur = new \CCUFFS\Scrap\UniversityRestaurantUFFS();
$menu = $ur->getMenuByCampus("https://www.uffs.edu.br/campi/chapeco/restaurante_universitario");

//ou

$menu = $ur->getMenuByCampus($ur->campus["chapeco"]));

在这种情况下,$menu 将是一个键/对象数组,键是日期(格式为 d/m/Y),对象是组成特定日期菜单的元素数组。

Array
(
    [18/07/2022] => Array
        (
            [0] => Alface

            [1] => Repolho branco

            [2] => Cenoura cozida

            [3] => Arroz branco

            [4] => Arroz integral

            [5] => Feijão-preto

            [6] => Farofa de cenoura c/ batata palha

            [7] => Cubos suínos assado c/ legumes

            [8] => PTS refogada

            [9] => Fruta
        )
...

    [15/07/2022] => Array
        (
            [0] => Alface

            [1] => Acelga 

            [2] => Beterraba

            [3] => Arroz branco

            [4] => Arroz integral

            [5] => Feijão preto 

            [6] => Macarrão c/ tomate e manjericão (contém glúten)

            [7] => Cubos bovinos ao molho 

            [8] => PTS à chinesa

            [9] => Pudim de baunilha (contém lactose)
        )
)

2. 通过日期或星期几获取菜单

如果您想获取特定日期的菜单,只需使用 getMenuByDate 方法,并传入菜单链接和日期(格式为 d/m/Y)作为参数。

$ur = new UniversityRestaurantUFFS();
$menu = $ur->getMenuByDate($ur->campus["chapeco"], '25/07/2022');

或者使用 getMenuByWeekDay 方法,并传入菜单链接和星期几(格式为 segterquaquisex)作为参数。

$ur = new UniversityRestaurantUFFS();
$menu = $ur->getMenuByWeekDay($ur->campus["chapeco"], 'seg');

在这两个方法中,如果未找到指定日期的值,它将返回 null

这些方法的输出将类似于这个

Array
(
    [0] => Alface
    [1] => Beterraba
    [2] => Abobrinha
    [3] => Arroz branco
    [4] => Arroz integral
    [5] => Feijão-preto
    [6] => Batata palha
    [7] => Estrogonoffe bovino (contém lactose)
    [8] => Estrogonoffe de grão-de-bico (contém lactose)
    [9] => Fruta
)

👩‍💻 开发

如果您想创建新功能、修复错误等,请按照以下步骤操作。

克隆存储库

git clone https://github.com/ccuffs/uffs-ru-scraping && cd uffs-ru-scraping

安装依赖项

composer install

实施必要的更改,并通过 test.php 进行测试

php tests/test.php

🤝 贡献

您的帮助非常受欢迎,无论形式如何!请查看 CONTRIBUTING.md 了解所有贡献方式。例如,建议新功能报告问题/错误发送pull request,或者只需使用项目并评论您的体验。

🎫 许可证

本项目的许可证为开源许可证 MIT,并可免费使用。

🧬 更新日志

请查看此项目的所有更改记录在 CHANGELOG.md 文件中。

🧪 相似项目