質問編集履歴
2
マークアップ例を記述
test
CHANGED
File without changes
|
test
CHANGED
@@ -4,11 +4,61 @@
|
|
4
4
|
|
5
5
|
例えば、「本州の南海上を北東に」というワードを含む文章が、hbody という一意のクラスを持つタグの中にあるので、simple dom phpで.hbodyを狙えば文章がまるまる取得出来ます。
|
6
6
|
|
7
|
-
|
8
|
-
|
9
7
|
http://news.yahoo.co.jp/pickup/6212572
|
10
8
|
|
11
9
|
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
https://teratail.com/questions/18940
|
14
|
+
|
15
|
+
この質問と似ていたので、「xpath テキスト」で色々調べて出てきたものを試しましたが、何も出力されないのですが使い方が違いますでしょうか。
|
16
|
+
|
17
|
+
(配列で帰ってくるのかわからなかったのでechoとvar_dump両方しています。)
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
```php
|
22
|
+
|
23
|
+
$html = file_get_contents('http://news.yahoo.co.jp/pickup/6212572');
|
24
|
+
|
25
|
+
$document = new DOMDocument();
|
26
|
+
|
27
|
+
@$document->loadHTML($html);
|
28
|
+
|
29
|
+
$path = new DOMXPath($document);
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
// 要素の文字列が"プログラミング"である
|
34
|
+
|
35
|
+
echo $node_list = $path->query('//*[.="進んだ"]');
|
36
|
+
|
37
|
+
var_dump($node_list);
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
// 要素の文字列に"プログラミング"が含まれている
|
42
|
+
|
43
|
+
echo $node_list = $path->query('//*(./text(), "進んだ")');
|
44
|
+
|
45
|
+
var_dump($node_list);
|
46
|
+
|
47
|
+
//その他
|
48
|
+
|
49
|
+
echo $node_list = $path->query('//p[contains(text(), "進んだ")]');
|
50
|
+
|
51
|
+
var_dump($node_list);
|
52
|
+
|
53
|
+
echo $node_list = $path->query('//p[contains(text(), "進んだ")]') # 部分一致
|
54
|
+
|
55
|
+
var_dump($node_list);
|
56
|
+
|
57
|
+
echo $node_list = $path->query('//p[contains(., "進んだ")]') # 部分一致
|
58
|
+
|
59
|
+
var_dump($node_list);
|
60
|
+
|
61
|
+
```
|
12
62
|
|
13
63
|
|
14
64
|
|
1
不要なマークアップの削除
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
PHPで、特定の文字列を含む
|
1
|
+
PHPで、HTML内の特定の文字列を含む文章を得る方法(X-path利用でしょうか)
|
test
CHANGED
@@ -2,26 +2,18 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
例
|
5
|
+
例えば、「本州の南海上を北東に」というワードを含む文章が、hbody という一意のクラスを持つタグの中にあるので、simple dom phpで.hbodyを狙えば文章がまるまる取得出来ます。
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
-
```html
|
10
|
-
|
11
|
-
<div>
|
12
|
-
|
13
|
-
こんにちは。
|
14
|
-
|
15
|
-
私の得意分野はPHPです。
|
16
|
-
|
17
|
-
|
9
|
+
http://news.yahoo.co.jp/pickup/6212572
|
18
|
-
|
19
|
-
```
|
20
10
|
|
21
11
|
|
22
12
|
|
13
|
+
|
14
|
+
|
23
|
-
simple_html_dom.phpを普段使用しているのですが、特定のクラスやID,スタイル要素を持つタグを取得は出来ますが、特定のキーワードを含む文章を包むタグの取得はPHPで出来るのでしょうか。
|
15
|
+
simple_html_dom.phpを普段使用しているのですが、特定のクラスやID,スタイル要素を持つタグを取得は出来ますが、特定の「キーワード」を含む文章を包むタグ(一意の場所指定で)取得はPHPで出来るのでしょうか。
|
24
16
|
|
25
17
|
|
26
18
|
|
27
|
-
PhantomJSがインストール出来ない一般的な共用サーバーになります。
|
19
|
+
(PhantomJSがインストール出来ない一般的な共用サーバーになります。)
|