ccuffs / uffs-ca-scraping
用于自动化获取UFFS大学学术日历的库
Requires
- composer/ca-bundle: ^1.3
- paquettg/php-html-parser: ^3.1
Requires (Dev)
- pestphp/pest: ^1.21
This package is auto-updated.
Last update: 2024-09-20 03:28:20 UTC
README
uffs-ca-scraping
一个用于抓取南联邦大学学术日历的PHP包。此包的目的是允许创建API,其中包含关于学术社区重要日期的信息,例如重新注册,日记结束等。
✨特性
- 通过UFFS网站上的列表自动获取学术日历信息;
- 获取网站上发布的一个或所有学术日历;
- 无需更改即可获取未来的日历(将由UFFS发布);
- 结构化数据,便于操作。
🚀 使用
1. 将包添加到您的项目
在您的PHP项目根目录中运行
composer require ccuffs/uffs-ca-scraping
所有依赖项将被安装。
2. 获取所有学术日历
要获取任何学术日历,您将使用AcademicCalendarUFFS
类。此类对象具有获取日历的多种方法。
最简单的是获取所有已发布的日历
$ac = new \CCUFFS\Scrap\AcademicCalendarUFFS(); $calendars = $ac->fetchCalendars();
在这种情况下,$calendars
将是一个数组,其中每个条目都是一个学术日历(包含标题、获取它的URL和相关的数据/日期)
array(3) { [0]=> array(3) { ["title"]=> string(193) "PORTARIA N 2042/GR/UFFS/2022 - Estabelece o ... para o ano letivo de 2022. " ["url"]=> string(61) "https://www.uffs.edu.br/atos-normativos/portaria/gr/2022-2042" ["data"]=> array(11) { ["ABRIL / 2022"]=> array(3) { ["month"]=> string(5) "Abril" ["events"]=> array(13) { [0]=> array(2) { ["period"]=> string(1) "8" ["event"]=> string(176) "Publicação dos editais com os resultados ..." } [1]=> array(2) { ["period"]=> string(7) "11 a 18" ["event"]=> string(195) "Período para matrícula dos selecionados ..." } ... } ["MAIO / 2022"]=> ... ["JUNHO / 2022"]=> ... ... } [1]=> array(3) { ["title"]=> string(193) "PORTARIA N 1090/GR/UFFS/2021 - Estabelece o ... para o ano letivo de 2021." ["url"]=> string(61) "https://www.uffs.edu.br/atos-normativos/portaria/gr/2021-1090" ["data"]=> array(11) { ["JANEIRO / 2021"]=> ... ["FEVEREIRO / 2021"]=> ... ["MARÇO / 2021"]=> ... ... }
此方法可能随月份的不同而返回不同的值。例如,如果UFFS发布一个新的学术日历,那么在相应的数组中会返回一个新的条目。
3. 获取特定学术日历
如果您想获取特定学术日历,可以使用UFFS网站上的URL获取数据
$ac = new \CCUFFS\Scrap\AcademicCalendarUFFS(); $calendar = $ac->fetchCalendarByUrl('https://www.uffs.edu.br/atos-normativos/portaria/gr/2022-2042');
变量$calendar
将包含相关学术日历的数据(与使用fetchCalendars
获取的日历的data
字段等效)。索引是关联的,代表日历的月份和年份。例如
array(11) { ["ABRIL / 2022"]=> array(3) { ["month"]=> string(5) "Abril" ["events"]=> array(13) { [0]=> array(2) { ["period"]=> string(1) "8" ["event"]=> string(176) "Publicação dos editais com os resultados de Transferência Interna e Retorno de Aluno-abandono da UFFS, Transferência Externa e Retorno de Graduado, para ingresso em 2022.1." } [1]=> array(2) { ["period"]=> string(7) "11 a 18" ["event"]=> string(195) "Período para matrícula dos selecionados no Processo Seletivo de Transferência Interna e Retorno de Aluno-abandono da UFFS, Transferência Externa e Retorno de Graduado, para ingresso em 2022.1" } [2]=> array(2) { ["period"]=> string(2) "14" ["event"]=> string(50) "TÉRMINO DO SEMESTRE LETIVO 2021.2 DA GRADUAÇÃO." } [3]=> array(2) { ["period"]=> string(7) "15 a 30" ["event"]=> string(31) "Período de recesso acadêmico." } [4]=> array(2) { ["period"]=> string(2) "18" ["event"]=> string(110) "Data limite para encerramento dos Diários de Classe on-line e entrega dos mesmos nas Secretarias Acadêmicas." } [5]=> array(2) { ["period"]=> string(10) "19/4 a 2/5" ["event"]=> string(132) "Período para destrancamento ou renovação de trancamento de matrícula da graduação para o semestre 2022.1, via Portal do Aluno." } [6]=> array(2) { ["period"]=> string(10) "19/4 a 2/5" ["event"]=> string(86) "Período de autoavaliação geral dos estudantes, TAEs, docentes e comunidade externa." } [7]=> array(2) { ["period"]=> string(11) "19/4 a 31/5" ["event"]=> string(84) "Período de preenchimento e aprovação do plano de ensino, via Portal do Professor." } [8]=> array(2) { ["period"]=> string(11) "19/4 a 31/5" ["event"]=> string(117) "Período para elaboração e entrega do Plano de Adaptações Curriculares ao estudante e ao Setor de Acessibilidade." } [9]=> array(2) { ["period"]=> string(7) "19 a 24" ["event"]=> string(70) "Período para rematrícula 2022.1 da graduação, via Portal do Aluno." } [10]=> array(2) { ["period"]=> string(7) "25 e 26" ["event"]=> string(66) "Período para análise dos pedidos de rematrícula da graduação." } [11]=> array(2) { ["period"]=> string(7) "25 a 29" ["event"]=> string(54) "Período de planejamento do ano letivo da graduação." } [12]=> array(2) { ["period"]=> string(10) "27/4 a 2/5" ["event"]=> string(96) "Período para solicitação de ajustes de matrícula 2022.1 da graduação, via Portal do Aluno." } } ["festivities"]=> array(2) { [0]=> string(46) "15 - Paixão de Cristo - Feriado Nacional." [1]=> string(39) "21 - Tiradentes - Feriado Nacional." } } ["MAIO / 2022"]=> array(3) { ["month"]=> string(4) "Maio" ["events"]=> array(14) { [0]=> array(2) { ["period"]=> string(10) "19/4 a 2/5" ["event"]=> string(132) "Período para destrancamento ou renovação de trancamento de matrícula da graduação para o semestre 2022.1, via Portal do Aluno." } [1]=> array(2) { ["period"]=> string(10) "19/4 a 2/5" ["event"]=> string(86) "Período de autoavaliação geral dos estudantes, TAEs, docentes e comunidade externa." } [2]=> array(2) { ["period"]=> string(11) "19/4 a 31/5" ["event"]=> string(84) "Período de preenchimento e aprovação do plano de ensino, via Portal do Professor." } [3]=> array(2) { ["period"]=> string(11) "19/4 a 31/5" ["event"]=> string(117) "Período para elaboração e entrega do Plano de Adaptações Curriculares ao estudante e ao Setor de Acessibilidade." } [4]=> array(2) { ["period"]=> string(10) "27/4 a 2/5" ["event"]=> string(96) "Período para solicitação de ajustes de matrícula 2022.1 da graduação, via Portal do Aluno." } [5]=> array(2) { ["period"]=> string(1) "2" ["event"]=> string(60) "INÍCIO DO SEMESTRE LETIVO 2022/1 DOS CURSOS DE GRADUAÇÃO." } [6]=> array(2) { ["period"]=> string(5) "3 e 4" ["event"]=> string(75) "Período para análise dos pedidos de ajustes de matrícula da graduação." } [7]=> array(2) { ["period"]=> string(6) "5 a 15" ["event"]=> string(68) "Período para inclusão extraordinária de CCR, via Portal do Aluno." } [8]=> array(2) { ["period"]=> string(6) "5 a 31" ["event"]=> string(88) "Período para solicitação de cancelamento de CCRs da graduação, via Portal do Aluno." } [9]=> array(2) { ["period"]=> string(1) "9" ["event"]=> string(181) "Data de publicação do edital do processo seletivo de Aluno-especial da graduação, se houver viabilidade de realização das inscrições devido aos efeitos da Pandemia Covid-19." } [10]=> array(2) { ["period"]=> string(7) "10 e 11" ["event"]=> string(87) "Período para inscrição no processo seletivo de Aluno-especial da graduação 2022/1." } [11]=> array(2) { ["period"]=> string(2) "17" ["event"]=> string(65) "Divulgação do resultado do processo seletivo de Aluno-especial." } [12]=> array(2) { ["period"]=> string(13) "18/05 a 02/07" ["event"]=> string(65) "Período para realização das formaturas dos concluintes 2021.2." } [13]=> array(2) { ["period"]=> string(7) "23 a 31" ["event"]=> string(78) "Período para solicitação de exame de suficiência na Secretaria Acadêmica." } } ["festivities"]=> array(1) { [0]=> string(51) "1 - Dia Mundial do Trabalho - Feriado Nacional." } } }
👩💻 开发
如果您打算创建新功能、修复错误等,请按照以下步骤操作。
克隆存储库
git clone https://github.com/ccuffs/uffs-ca-scraping && cd uffs-ca-scraping
安装依赖项
composer install
实现所需内容并运行测试
composer test
理论上所有测试都应该通过。如果现有内容出现问题,很可能UFFS更新了网站,您需要更新包。这是什么阶段,对吧?
🤝 贡献
您的帮助非常受欢迎,无论形式如何!请查看CONTRIBUTING.md文件,了解所有贡献项目的方式。例如,建议新功能,报告问题/错误,发送pull request,或者只是使用项目并评论您的体验。
🎫 许可证
该项目根据MIT开源许可证MIT许可,并免费提供。
🧬 更新日志
查看此项目的所有更改,请参阅文件 CHANGELOG.md。
🧪 相似项目
以下是一些有趣的链接和相似项目