前提・実現したいこと
php-phantomjsで取得したhtmlをphpQueryでスクレイピングしたいのですが
phpQueryでスクレイピングする際にエラーになってしまいます。
url先のjs実行後のhtmlが取得できていることは確認済みです。
こちらを参考に実装を行ったのですが、エラーの原因がわからなかったのでご教示頂けると幸いです。
発生している問題・エラーメッセージ
Parse error: syntax error, unexpected 'newDocument' (T_STRING), expecting variable (T_VARIABLE) or '$'
該当のソースコード
PHP
1<?php 2//phpqueryの読み込み 3require_once("phpQuery-onefile.php"); 4//PHP Phantomjsの読み込み 5require_once("vendor/autoload.php"); 6use JonnyW\PhantomJs\Client; 7//インスタンスの取得 8$client = Client::getInstance(); 9//リクエストとレスポンスオブジェクト作成 10$request = $client->getMessageFactory()->createRequest(); 11$response = $client->getMessageFactory()->createResponse(); 12//URLの指定と実行 13$url = '***'; 14$request->setUrl($url); 15$client->send($request, $response); 16//js実行後のhtmlの取得 17$html = $response->getContent(); 18//echo $html; 19//DOMDocumentにする 20$dom = new DOMDocument; 21@$dom->loadHTML($html); //$htmlになんらかのHTML的invalidがあるので、@をつける 22$dom->saveHTML(); 23//phpQueryでスクレイピングする 24$doc = new phpQuery::newDocument($dom);//ここでエラー 25echo $doc; 26 ?> 27
補足情報(FW/ツールのバージョンなど)
PHP 7.1.16
(スクレイピングの是非はともかく)
URLから取得したものではなく、単なる静的html文字列をDOMDocumentに入れても同じでしょうか。またphpQueryのバージョンは幾つでしょうか。
回答2件
あなたの回答
tips
プレビュー