重複の可能性:
PHPでHTMLを解析および処理する方法は?
file_get_contents()を使用してPHPでページをスクレイプしようとしています。このページには、JSONが少しHTMLでラップされています。このHTMLを削除して、スクレイプされた文字列でjson_decode()を使用できるようにし、JSONを個別に処理できるようにします。それを行うためのクリーンな方法はありますか?クイック検索は実際には何も導きませんでした。ありがとう
重複の可能性:
PHPでHTMLを解析および処理する方法は?
file_get_contents()を使用してPHPでページをスクレイプしようとしています。このページには、JSONが少しHTMLでラップされています。このHTMLを削除して、スクレイプされた文字列でjson_decode()を使用できるようにし、JSONを個別に処理できるようにします。それを行うためのクリーンな方法はありますか?クイック検索は実際には何も導きませんでした。ありがとう
HTMLマークアップの形式が正しくなく、時間がかかる場合、正規表現を介した(一般的な?)ソリューションがクラッシュする可能性があるため、HTMLコンテンツの解析/削除は常に注意が必要です。この小さなHTMLDOMパーサークラスを使用することをお勧めします。
http://simplehtmldom.sourceforge.net/
サブコメントから編集および追加:
インラインJavaScriptがCDATAタグで適切にラップされていないため、これは悪いことです。そうでなければ、このようなものが機能する可能性があります:
$html = new simple_html_dom();
$html->load_file('your-external-file');
foreach($html->find("script") as $obj) {
if(isset($obj->innertext) && strpos($obj->innertext, 'window._jscalls'))
echo $obj->innertext;
}