This repository has been archived by the owner on Aug 8, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 5
/
getvagas.php
116 lines (94 loc) · 4.59 KB
/
getvagas.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<?php
/*
Scrapper de vagas no sifeup
@Author: Diogo Basto (ei09082@fe.up.pt)
*/
//params
//curso
//tratar parametros da pagina
switch($_GET['curso'])
{
case 'feup-MIEIC': $faculdade_codigo[0]='feup';$curso_id[0]='742';break;
//case 'feup-CINF': $faculdade_codigo[0]='flup';$curso_id[0]='454'; $faculdade_codigo[1]='feup';$curso_id[1]='454';break;
case 'feup-LCEEMG': $faculdade_codigo[0]='feup';$curso_id[0]='738';break;
case 'feup-MEMG': $faculdade_codigo[0]='feup';$curso_id[0]='739';break;
case 'feup-MIB': $faculdade_codigo[0]='feup';$curso_id[0]='728';break;
case 'feup-MIEC': $faculdade_codigo[0]='feup';$curso_id[0]='740';break;
case 'feup-MIEA': $faculdade_codigo[0]='feup';$curso_id[0]='726';break;
case 'feup-MIEEC': $faculdade_codigo[0]='feup';$curso_id[0]='741';break;
case 'feup-MIEIG': $faculdade_codigo[0]='feup';$curso_id[0]='725';break;
case 'feup-MIEM': $faculdade_codigo[0]='feup';$curso_id[0]='743';break;
case 'feup-MIEMM': $faculdade_codigo[0]='feup';$curso_id[0]='744';break;
case 'feup-MIEQ': $faculdade_codigo[0]='feup';$curso_id[0]='745';break;
case 'fcup-LAP': $faculdade_codigo[0]='fcup';$curso_id[0]='1011';break;
case 'fcup-LAST': $faculdade_codigo[0]='fcup';$curso_id[0]='956';break;
case 'fcup-LB': $faculdade_codigo[0]='fcup';$curso_id[0]='884';break;
case 'fcup-LBQ': $faculdade_codigo[0]='fcup';$curso_id[0]='863';break;
case 'fcup-LCC': $faculdade_codigo[0]='fcup';$curso_id[0]='885';break;
case 'fcup-LCE': $faculdade_codigo[0]='fcup';$curso_id[0]='886';break;
case 'fcup-LCTA': $faculdade_codigo[0]='fcup';$curso_id[0]='887';break;
case 'fcup-LF': $faculdade_codigo[0]='fcup';$curso_id[0]='888';break;
case 'fcup-LG': $faculdade_codigo[0]='fcup';$curso_id[0]='889';break;
case 'fcup-LM': $faculdade_codigo[0]='fcup';$curso_id[0]='864';break;
case 'fcup-LQ': $faculdade_codigo[0]='fcup';$curso_id[0]='865';break;
case 'fcup-MIERS': $faculdade_codigo[0]='fcup';$curso_id[0]='870';break;
case 'fcup-MIEF': $faculdade_codigo[0]='fcup';$curso_id[0]='890';break;
case 'flup-ARQU': $faculdade_codigo[0]='flup';$curso_id[0]='339';break;
case 'flup-CINF': $faculdade_codigo[0]='flup';$curso_id[0]='454'; $faculdade_codigo[1]='feup';$curso_id[1]='454';break;
case 'flup-CC': $faculdade_codigo[0]='flup';$curso_id[0]='455';$faculdade_codigo[1]='fep';$curso_id[1]='455';$faculdade_codigo[2]='feup';$curso_id[2]='455';$faculdade_codigo[3]='fbaup';$curso_id[3]='455';break;
case 'flup-CL': $faculdade_codigo[0]='flup';$curso_id[0]='460';break;
case 'flup-EPL': $faculdade_codigo[0]='flup';$curso_id[0]='459';break;
case 'flup-FILO': $faculdade_codigo[0]='flup';$curso_id[0]='340';break;
case 'flup-GEOGR': $faculdade_codigo[0]='flup';$curso_id[0]='341';break;
case 'flup-HISTO': $faculdade_codigo[0]='flup';$curso_id[0]='342';break;
case 'flup-HART': $faculdade_codigo[0]='flup';$curso_id[0]='453';break;
case 'flup-LA': $faculdade_codigo[0]='flup';$curso_id[0]='456';break;
case 'flup-LRI': $faculdade_codigo[0]='flup';$curso_id[0]='458';break;
case 'flup-LLC': $faculdade_codigo[0]='flup';$curso_id[0]='457';break;
case 'flup-SOCI': $faculdade_codigo[0]='flup';$curso_id[0]='452';break;
case 'fbaup-AP':$faculdade_codigo[0]='fbaup';$curso_id[0]='1315';break;
case 'fbaup-DC':$faculdade_codigo[0]='fbaup';$curso_id[0]='1314';break;
default : return FALSE; // Erro: Curso desconhecido
}
//Query FEUP
$fcicount=count($faculdade_codigo);
for ($fci=0;$fci<$fcicount;$fci++)
{
$url= 'http://sigarra.up.pt/'.$faculdade_codigo[$fci].'/pt/it_geral.vagas?pv_curso_id='.$curso_id[$fci];
$vagasresult = file_get_contents ( $url);
//Parse para sacar os links
$dom = new DOMDocument;
@$dom->loadHTML($vagasresult);
$xp = new DOMXpath($dom);
$nodestr = $xp->query('//table[@class="tabela"]/tr');
$prevclasse="a";
for ($i=2;$i<$nodestr->length;$i++)
{
$tr=$nodestr->item($i);
$classe=$tr->attributes->getNamedItem('class')->nodeValue;
$nodestd=$xp->query('.//td',$tr);
if ($prevclasse!=$classe)
{
$j=2;
$nomeaula=$nodestd->item(0)->nodeValue;
$nomeaula=preg_replace("/\s*\([a-zA-Z0-9]+\)\s*/","",$nomeaula);
$prevclasse=$classe;
//echo $nomeaula;
}
else $j=0;
for(;$j<$nodestd->length;$j++)
{
$tdtext=$nodestd->item($j)->nodeValue;
if ($tdtext!=" - ")
{
$turma=preg_replace("/\s*\([a-zA-Z0-9]+\)\s*/","",$tdtext);
preg_match("/\(\d+\)/",$tdtext,$matches);
$nrvagas=trim($matches[0]," ()");
$vagas[$nomeaula][$turma]=$nrvagas;
//echo $turma."-".$nrvagas."<br>";
}
}
}
}
echo json_encode($vagas);
?>