前提・実現したいこと
こちらのURL内にある https://db.netkeiba.com/horse/ped/2018104968/ 「table」内のclass「b_ml」値をテキストで取得したいと考えています。 ■取得例 ハービンジャー Harbinger(英) 2006 鹿毛 [血統][産駒] Danzig系 考えられる取得方法は試したのですが、 できなかったため、こちらで質問させて頂きました。 一方で、こちらのURLは正常に取得まで出来ているので、なにが違うのかご教授頂きたく思います。 「https://race.netkeiba.com/race/result.html?race_id=202001020801」
発生している問題・エラーメッセージ
エラーメッセージ等は出ておらず、単純に取得が上手くいってないようです。 file_get_contentsでHTMLが取得できていることは確認しております。
該当のソースコード
PHP
1<?php 2 3 header("Content-Type: text/html; charset=UTF-8"); 4 5 // phpQueryの読み込み 6 require_once("./scraping/phpQuery-onefile.php"); 7 8 // 接続情報の読み込み 9 require_once("./dba.php"); 10 11 ini_set( 'display_errors', 1 ); 12 ini_set('error_reporting', E_ALL); 13 mb_regex_encoding("UTF-8"); 14 15 $html = file_get_contents("https://db.netkeiba.com/horse/ped/2018104968/"); 16 $html = mb_convert_encoding($html,"UTF-8","EUC-JP"); 17 $doc = phpQuery::newDocument($html); 18 19 20 // NG:取得できない。 21 $tmp = $doc[".b_ml"]; 22 foreach( $tmp as $data) 23 { 24 $t = pq($data); 25 echo $t->text()."<br/>"; 26 } 27 28 // NG:取得できない。 29 $tmp = $doc[".blood_table, .detail"]->find("td"); 30 foreach( $tmp as $data) 31 { 32 $t = pq($data); 33 echo $t->text()."<br/>"; 34 } 35 36 // NG:取得できない。 37 $tmp = $doc[".detail .b_ml"]; 38 foreach( $tmp as $data) 39 { 40 $t = pq($data); 41 echo $t->text()."<br/>"; 42 } 43 44 // NG:【5代血統表】のテキストも色々と試したのですが、取得できません。 45 echo $doc[".db_main_deta"]->find(".cate_bar")->find("h2"); 46 echo $doc[".db_main_deta"]->find(".cate_bar"); 47 echo $doc[".db_main_deta"]->find(".cate_bar")->find("h2")->text(); 48 echo $doc[".db_main_deta"]->find(".cate_bar")->text(); 49
試したこと
上記のような様々な形で取得を試みたのですが
1件も取ることができませんでした。
お手数ですが、ご存知の方がいらっしゃいましたら
正しい取得方法を教えていただけますでしょうか。
補足情報(FW/ツールのバージョンなど)
サーバー:ロリポップ
PHP:7.4
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。