-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcasper_kpu.js
115 lines (92 loc) · 2.98 KB
/
casper_kpu.js
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
#!/usr/bin/env node
'use strict';
// Dependencies
var fs = require('fs');
var casperjs = require('casper');
var casper = casperjs.create({
verbose: !true,
// logLevel: 'debug',
logLevel: 'info',
waitTimeout: 60000,
resourceTimeout: 10000,
viewportSize: {
width: 1280,
height: 960
},
pageSettings: {
javascriptEnabled: true,
loadImages: !true,
loadPlugins: true,
userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:57.0) Gecko/20100101 Firefox/57.0'
}
});
casper.start('https://pemilu2014.kpu.go.id/db1_dpr.php');
var dapilSel = '#contentcolumn_left > div > div.formcontainer > div.form > span.field > select[name="wilayah_id"]';
casper.waitForSelector(dapilSel, function () {
var selectedDapil, selectedKab, selectedDapil_nm, selectedKab_nm;
var dapilOptions = this.evaluate(function () {
var result = [];
var opts = document.querySelectorAll('select[name="wilayah_id"] option');
for (var i = 0; i < opts.length; i++) {
if (opts[i].value.length > 0) {
result.push(opts[i].value);
}
}
return result;
});
//this.echo(dapilOptions);
var dapilName = this.evaluate(function () {
var result = [];
var opts = document.querySelectorAll('select[name="wilayah_id"] option');
for (var i = 0; i < opts.length; i++) {
if (opts[i].text != 'pilih') {
result.push(opts[i].text);
}
}
return result;
});
//this.echo(dapilName);
selectedDapil = dapilOptions[76];
selectedDapil_nm = dapilName[76];
this.fillSelectors('#contentcolumn_left > div > div.formcontainer > div.form', {
'select[name="wilayah_id"]': selectedDapil
}, false);
this.echo(selectedDapil_nm);
this.waitForText('Kabupaten/Kota ', function () {
var kabOptions = this.evaluate(function () {
var result = [];
var opts = document.querySelectorAll('#subcat_0 > div.form > span.field > select > option');
for (var i = 0; i < opts.length; i++) {
if (opts[i].value.length > 0) {
result.push(opts[i].value);
}
}
return result;
});
var kabName = this.evaluate(function () {
var result = [];
var opts = document.querySelectorAll('#subcat_0 > div.form > span.field > select > option');
for (var i = 0; i < opts.length; i++) {
if (opts[i].text != 'pilih') {
result.push(opts[i].text);
}
}
return result;
});
selectedKab = kabOptions[10];
selectedKab_nm = kabName[10];
this.echo(selectedKab_nm);
this.fillSelectors('#subcat_0 > div.form', {
'select[name="wilayah_id"]': selectedKab
}, false);
var selector = "#daftartps > table";
var filename = [selectedDapil, selectedKab, selectedDapil_nm, selectedKab_nm, 'dpr.html'].join('_');
this.waitForSelector(selector, function () {
console.log(filename);
fs.write(filename, this.getPageContent(), 'w');
});
});
});
casper.run(function () {
this.exit();
});