これは私の最初の投稿であり、間違っていたら申し訳ありませんが、ここに行きます:
私は、Web サイトから値をスクレイピングするプロジェクトに取り組んできました。値は、javascript 配列内の変数です。私はPHP Simple HTML DOMを使用しています。通常のスクリプトでは動作しますが、CDATA ブロックに保存されているスクリプトでは動作しません。したがって、CDATA ブロック内のデータをスクレイピングする方法を探しています。残念ながら、私が見つけたヘルプはすべて XML ファイルに関するものであり、HTML ファイルからスクレイピングしています。
私がこすり取ろうとしているJavaScriptは次のとおりです。
<script type="text/javascript">
//<![CDATA[
var data = [{"value":8.41,"color":"1C5A0D","text":"17/11"},{"value":9.86,"color":"1C5A0D","text":"18/11"},{"value":7.72,"color":"1C5A0D","text":"19/11"},{"value":9.42,"color":"1C5A0D","text":"20/11"}];
//]]>
</script>
スクレイピングする必要があるのは、var データの「値」変数です。
問題は、オブジェクトの CDATA 文字列を置き換えようとしたことです。次のコードは完全に機能します:-)
include('simple_html_dom.php');
$lines = file_get_contents('http://www.virtualmanager.com/players/7793477-danijel-pavliuk/training');
$lines = str_replace("//<![CDATA[","",$lines);
$lines = str_replace("//]]>","",$lines);
$html = str_get_html($lines);
foreach($html->find('script') as $element) {
echo $element->innertext;
}
必要に応じて、より多くの情報を提供します。