質問編集履歴
2
文言修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -19,8 +19,8 @@
|
|
19
19
|
session_start();
|
20
20
|
|
21
21
|
$dom = new \DOMDocument;
|
22
|
-
$
|
22
|
+
$testExampleURL = 'https://example.com';
|
23
|
-
@$dom->loadHTML(mb_convert_encoding(file_get_contents($
|
23
|
+
@$dom->loadHTML(mb_convert_encoding(file_get_contents($testExampleURL), 'HTML-ENTITIES', 'UTF-8'));
|
24
24
|
$xpath = new \DOMXPath($dom);
|
25
25
|
$query = $xpath->query('//center/div')->item(0);
|
26
26
|
//B画面内の確認リンクを抽出
|
@@ -31,8 +31,8 @@
|
|
31
31
|
$exec = curl_exec($ch);
|
32
32
|
|
33
33
|
// ②スクレイピングしたいURLの中身を取得する
|
34
|
-
$
|
34
|
+
$exampleURL = 'https://example.com/example';
|
35
|
-
@$dom->loadHTML(mb_convert_encoding(file_get_contents($
|
35
|
+
@$dom->loadHTML(mb_convert_encoding(file_get_contents($exampleURL), 'HTML-ENTITIES', 'UTF-8'));
|
36
36
|
var_dump($dom->documentElement);
|
37
37
|
```
|
38
38
|
こちらの実装では、②のURLの中身(HTML)を取得時、B画面を取得してしまいます。
|
1
誤字の修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
あるサイトのスクレイピングを行うにあたって直面している問題です。
|
3
3
|
|
4
4
|
#概要
|
5
|
-
上述のサイトのA画面をスクレイピングするために、A画面をリクエストします。しかしそのサ
|
5
|
+
上述のサイトのA画面をスクレイピングするために、A画面をリクエストします。しかしそのサイトの仕様上、一旦B画面に遷移して内容を確認しなければ、A画面にアクセスすることができません。確認(具体的には画面内のリンクを踏む)した後はセッションIDを通じて、同一ブラウザであることが認識され、その情報が失われない限りは再度B画面に飛ぶことはありません。
|
6
6
|
|
7
7
|
**※A画面はあくまで例で、サイト内の任意の画面にアクセスする前に、B画面での確認が必要です**
|
8
8
|
|
@@ -35,7 +35,7 @@
|
|
35
35
|
@$dom->loadHTML(mb_convert_encoding(file_get_contents($hogeURL), 'HTML-ENTITIES', 'UTF-8'));
|
36
36
|
var_dump($dom->documentElement);
|
37
37
|
```
|
38
|
-
こちらの実装では、②のURLの
|
38
|
+
こちらの実装では、②のURLの中身(HTML)を取得時、B画面を取得してしまいます。
|
39
39
|
原因として①と②のリクエストが同一のセッションIDを持ってないために起こっていると思いますが、ここからの実装について調べてもよくわかりませんでした。
|
40
40
|
|
41
41
|
何かアドバイスしていただける方いませんでしょうか?
|