NodejsでPhantomJSを使用して、Reactコンポーネントを使用しているWebサイトを削っています。これによりPhantomjsでサイトを掻き集める
:https://github.com/amir20/phantomjs-node
ここではコードです:
phantom.create().then(ph => {
_ph = ph;
return _ph.createPage();
}).then(page => {
_page = page;
return _page.open(url);
}).then(status => {
return _page.property('content');
}).then(content => {
console.log(content);
_page.close();
_ph.exit();
}).catch(e => console.log(e));
問題が反応したコンテンツがレンダリングされていないで、それだけで言う:実際には、コンポーネントがロードされるべき反応<!-- react-empty: 1 -->"
。
レンダリングされた反応コンポーネントをスクラップするにはどうすればよいですか?私は最初、純粋なノード要求ソリューションからPhantomJSに切り替えてこれを修正しましたが、今は止まっています。
UPDATE:
だから私はまだ真の解決策を持っていけません。私はNightmareJS(https://github.com/segmentio/nightmare)に切り替えました。これは、.wait('.some-selector')
機能があり、指定されたセレクタがロードされるまで待機します。これにより、動的に読み込まれた反応コンポーネントの問題が修正されました。
このパッケージはpage.onErrorコールバックの受信をサポートしていますか?何か間違いはありますか? – Vaviloff
はい、 'console.log(status);'が成功したことを返します。 '<! - react-empty:1 - >' – DennisKo
'page.open'コールバックから' status'疑いがあり、ページ内のエラーをチェックする必要があります.onErrorコールバック。このようなものかもしれません:[なぜPhantomJSを使って私のReactJSアプリケーションをレンダリングできないのですか?](http://stackoverflow.com/questions/38469005/why-i-am-not-able-to-render-my-reactjs -application-using-phantomjs-2-1-1) – Vaviloff