-
Notifications
You must be signed in to change notification settings - Fork 0
/
rmpProcess.php
123 lines (99 loc) · 3.81 KB
/
rmpProcess.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
117
118
119
120
121
122
123
<?php
// servername = "localhost";
// $username = "root";
// $password = "";
// $dbname = "johncena";
// $conn = new mysqli($servername, $username, $password, $dbname);
// if($conn -> connect_error) {die("DUMP");}
// echo $_POST['name']." ".$_POST['quality']." ".$_POST['grade']." ".$_POST['hotness']." ".
// $_POST['helpfulness']." ".$_POST['clarity']." ".$_POST['easiness'];
// // function insertProfessor($name,$quality,$grade,$hotness,$helpfulness,$clarity,$easiness,$conn){
// $query = "INSERT INTO professors (id, name, quality, grade, hotness, helpfulness, clarity, easiness)
// VALUES('','$name','$quality','$grade','$hotness','$helpfulness','$clarity','$easiness')";
// if($conn->query($query) === TRUE){} else echo $query."<br>";
// }
// Include the library
include('simple_html_dom.php');
set_time_limit(0);
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "johncena";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {die("DUMP");}
// Retrieve the DOM from a given URL
//This collects all Teacher IDs from ratemyprof and puts it into an array
$array = array();
for($i = 1; $i <= 130; $i++ ){
$url = "http://www.ratemyprofessors.com/find/professor/?department=&institution=&page=".(string)$i."&query=*%3A*&queryoption=TEACHER&queryBy=schoolId&sid=1381&sortBy=";
$json = file_get_contents($url);
$data = json_decode($json,true);
$professor = $data["professors"];
//echo $i."<br>";
//loops through professors of a single PAGE
//adds professor's teacher id to array
for($m = 0; $m < sizeof($data["professors"]); $m++){
$professor = $data["professors"][$m];
$array[] = $professor["tid"];
}
}
for($j = 0; $j < sizeof($array);$j++){
$teacherURL = "http://www.ratemyprofessors.com/ShowRatings.jsp?tid=".$array[$j];
scrapeURL($teacherURL,$array[$j], $conn);
}
function insertProfessor($tid, $profName, $profQuality, $profGrade, $chili, $profHelpfulness, $profClarity, $profEasiness,$conn)
{
$query = "INSERT INTO professors (id, tid, profName, profQuality, profGrade, chili, profHelpfulness, profClarity, profEasiness) VALUES ('','$tid','$profName', '$profQuality', '$profGrade','$chili','$profHelpfulness','$profClarity','$profEasiness')";
if ($conn->query($query) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $query . "<br>" . $conn->error;
}
}
function scrapeURL ( $url , $id, $conn){
echo "Scraping<br>";
$html = file_get_html($url);
$tid = $id;
//find name of professor
$ret = $html -> find('span.pfname');
$profName = trim($ret[0]-> innertext);
$ret = $html -> find('span.plname');
$profName = $profName." ".trim($ret[0] -> innertext);
$profName = addslashes($profName);
//echo $fName."<br>";
//find information about professor
$ret = $html -> find('.breakdown-header');
$profQuality = $ret[0] -> find('.grade');
$profQuality = $profQuality[0] -> innertext;
//echo $profQuality."<br>";
$profGrade = $ret[1]->find('.grade');
$profGrade = $profGrade[0] -> innertext;
$profGrade = addslashes($profGrade);
$chili = $ret[2]->find('.grade');
$chili = $chili[0] -> find('img');
echo $chili[0]->src;
if(($chili[0]->src)==="/assets/chilis/cold-chili.png")
{
$chili = 0;
}
else if(($chili[0]->src)==="/assets/chilis/warm-chili.png")
{
$chili = 1;
}
else
{
$chili = 2;
}
$ret = $html -> find('.rating-slider');
$profHelpfulness = $ret[0]->find('.rating');
$profHelpfulness = $profHelpfulness[0] -> innertext;
//echo $profHelpfulness."<br>";
$profClarity = $ret[1] -> find('.rating');
$profClarity = $profClarity[0] -> innertext;
//echo $profClarity."<br>";
$profEasiness = $ret[2] -> find('.rating');
$profEasiness= $profEasiness[0] -> innertext;
//echo $profClarity."<br><br><br>";
insertProfessor($tid, $profName, $profQuality, $profGrade, $chili, $profHelpfulness, $profClarity, $profEasiness,$conn);
}
?>