9

私はCasperJSを使用して、動的コンテンツを含むWebサイトをスクレイプしようとしていますが、これまでのところ失敗しています。このWebサイトでは、いくつかのjsライブラリ(プロトタイプなど)を使用して、オートコンプリートを使用してコンテンツを作成しています。したがって、私はいくつかの値を挿入し、イベントをトリガーしてコンテンツの作成を開始しようとしています。イベントの挿入とトリガーは正常に機能しますが、コンテンツは作成されません。

私はCasperJSを初めて使用し、ライブラリへの相対パスに問題があることがわかりました。私の問題は、ライブラリがページ環境に正しくロードされていないことが原因であると思われます。したがって、私はinjectJsこのようにそれらを注入するために使用しようとしました

// ...キャスパーを作成し、他のことを行います

casper.then(function(){

this.echo(this.page.injectJs('http://www.my-website.com/path/to/js1'));
this.echo(this.page.injectJs('http://www.my-website.com/path/to/js2'));

 });

残念ながら、これは両方の関数に対してfalseを返します。スクリプトへのパスは正しいですが、他にこの問題の原因はどこにあるのでしょうか。

助けてくれてありがとう。

4

2 に答える 2

4

CasperJS が HTTP リクエストを処理してスクリプトを挿入できるとは思えません。jQuery の組み込みに関する FAQ で実際にこれを示しているため、これは奇妙です。ただし、同じ FAQ には次のように記載されています。

HTTP プロトコルを使用してスクリプトを挿入することはできません。実際には、スクリプト リソースへの相対/絶対ファイル システム パスを使用する必要があります。

再確認するために、Mac OS X と上記のコードを使用して自分で試してみました。echo の結果はfalse、http 経由でファイルを使用した場合とtrue、ローカルの場合でした。

于 2012-06-28T04:10:50.470 に答える