質問編集履歴
4
追記③
title
CHANGED
File without changes
|
body
CHANGED
@@ -112,5 +112,27 @@
|
|
112
112
|
|
113
113
|
|
114
114
|
```
|
115
|
+
##追記③
|
116
|
+
jsファイルを下記のように修正することでiframe内のhtmlを取得できるようになりましたので報告いたします。
|
117
|
+
```javascript
|
118
|
+
console.log('Hello, world!');
|
119
|
+
var page = require('webpage').create();
|
120
|
+
var fs = require('fs');
|
121
|
+
page.open('http://www.kaigokensaku.mhlw.go.jp/13/index.php?action_kouhyou_pref_search_list_list=true&PrefCd=13', function(status) {
|
122
|
+
if (status === 'success') {
|
123
|
+
page.switchToFrame(0);
|
124
|
+
// HTML を書き出し
|
125
|
+
var html = page.evaluate(function() {
|
126
|
+
return document.getElementsByClassName('contents')[0].innerHTML;
|
127
|
+
});
|
128
|
+
fs.write('resources\kaigokensaku.blade.php', html, 'w');
|
129
|
+
}
|
130
|
+
// exit しないと終了しない
|
131
|
+
phantom.exit();
|
132
|
+
});
|
115
133
|
|
134
|
+
```
|
135
|
+
settimeoutは不必要で「page.switchToFrame(0);」を記載することで出力できました。
|
136
|
+
ご協力ありがとうございました。
|
137
|
+
|
116
138
|
何卒よろしくお願いいたします。
|
3
追記②
title
CHANGED
File without changes
|
body
CHANGED
@@ -85,8 +85,32 @@
|
|
85
85
|
});
|
86
86
|
|
87
87
|
```
|
88
|
-
###追記 11/27
|
88
|
+
###追記 11/27①
|
89
89
|
11/25の追記のコードの原因ですが、setTimeoutができていないことが原因と考えています。
|
90
90
|
ただ、なぜsetTimeoutできていないのかがわかっておりません。
|
91
91
|
|
92
|
+
###追記 11/27②
|
93
|
+
次のようにjsファイルのコードを変更した結果setTimeoutはじっこうされましたが、iframe内のコードは取得できませんでした。
|
94
|
+
```
|
95
|
+
console.log('Hello, world!');
|
96
|
+
var page = require('webpage').create();
|
97
|
+
var fs = require('fs');
|
98
|
+
page.open('http://www.kaigokensaku.mhlw.go.jp/13/index.php?action_kouhyou_pref_search_list_list=true&PrefCd=13', function(status) {
|
99
|
+
window.setTimeout(function(){
|
100
|
+
if (status === 'success') {
|
101
|
+
// HTML を書き出し
|
102
|
+
var html = page.evaluate(function() {
|
103
|
+
return document.getElementsByClassName('main')[0].innerHTML;
|
104
|
+
});
|
105
|
+
fs.write('resources\kaigokensaku.blade.php', html, 'w');
|
106
|
+
}
|
107
|
+
// exit しないと終了しない
|
108
|
+
phantom.exit();
|
109
|
+
}, 20000);
|
110
|
+
|
111
|
+
});
|
112
|
+
|
113
|
+
|
114
|
+
```
|
115
|
+
|
92
116
|
何卒よろしくお願いいたします。
|
2
追記11/27
title
CHANGED
File without changes
|
body
CHANGED
@@ -85,5 +85,8 @@
|
|
85
85
|
});
|
86
86
|
|
87
87
|
```
|
88
|
+
###追記 11/27
|
89
|
+
11/25の追記のコードの原因ですが、setTimeoutができていないことが原因と考えています。
|
90
|
+
ただ、なぜsetTimeoutできていないのかがわかっておりません。
|
88
91
|
|
89
92
|
何卒よろしくお願いいたします。
|
1
追記11/25
title
CHANGED
File without changes
|
body
CHANGED
@@ -38,4 +38,52 @@
|
|
38
38
|
$xml = simplexml_import_dom($dom);
|
39
39
|
```
|
40
40
|
|
41
|
+
###追記 11/25
|
42
|
+
下記のようにコードを変更し、phantomjs.exeでcrawler.jsを実行し、実行結果をkaigokensaku.blade.phpに書き込む処理を行い、iframe内も取得しようとしておりますがうまく言っておりません。
|
43
|
+
原因はどこにあるのでしょうか。
|
44
|
+
```php
|
45
|
+
use JonnyW\PhantomJs\Client as PClient;
|
46
|
+
|
47
|
+
|
48
|
+
$page = 5;
|
49
|
+
// PhantomJs
|
50
|
+
$client = PClient::getInstance();
|
51
|
+
|
52
|
+
|
53
|
+
|
54
|
+
for($i = 1; $i <= 47; $i++) {
|
55
|
+
$request = $client->getMessageFactory()->createRequest();
|
56
|
+
if(strlen($i) === 1){
|
57
|
+
$prefId = '0'.$i;
|
58
|
+
} else {
|
59
|
+
$prefId = $i;
|
60
|
+
}
|
61
|
+
|
62
|
+
$pNum = $page - 5;
|
63
|
+
$projectListUrl = 'http://www.kaigokensaku.mhlw.go.jp/13/index.php?action_kouhyou_pref_search_list_list=true&PrefCd=13&OriPrefCd=13&method=pager&p_sort_name=47&p_order_name=1&p_count='.$page.'&p_offset='.$pNum;
|
64
|
+
$client->isLazy(); rendering
|
65
|
+
$request = $client->getMessageFactory()->createRequest();
|
66
|
+
$request->setTimeout(20000);
|
67
|
+
$cli = exec('C:\X_DRIVE\asp\home\laravel\vendor\bin\phantomjs.exe C:\X_DRIVE\asp\home\laravel\public\js\crawler.js '.$projectListUrl);
|
68
|
+
var_dump($cli);dd();
|
69
|
+
}
|
70
|
+
```
|
71
|
+
```javascript
|
72
|
+
console.log('Hello, world!');
|
73
|
+
var page = require('webpage').create();
|
74
|
+
var fs = require('fs');
|
75
|
+
page.open('http://www.kaigokensaku.mhlw.go.jp/13/index.php?action_kouhyou_pref_search_list_list=true&PrefCd=13', function(status) {
|
76
|
+
if (status === 'success') {
|
77
|
+
// HTML を書き出し
|
78
|
+
var html = page.evaluate(function() {
|
79
|
+
return document.getElementsByClassName('main')[0].innerHTML;
|
80
|
+
});
|
81
|
+
fs.write('resources\kaigokensaku.blade.php', html, 'w');
|
82
|
+
}
|
83
|
+
// exit しないと終了しない
|
84
|
+
phantom.exit();
|
85
|
+
});
|
86
|
+
|
87
|
+
```
|
88
|
+
|
41
89
|
何卒よろしくお願いいたします。
|