問題タブ [casperjs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
casperjs - WaitFor、Ajax、およびTester API
テスターAPIを使用し、sayを使用する場合assertSelectorExists
、セレクターを待つにはどうすればよいですか?waitForSelectorのonTimeoutコールバックを使用して、そこに手動でメッセージを作成できることを理解していますが、アサートする機能を持つという目的を損なうように思われます...
cygwin - Cygwin で PhantomJS / CasperJS を動作させるにはどうすればよいですか?
cygwin 環境で PhantomJS と CasperJS を動作させるのに問題があります。私はcygwinに非常に慣れていません。Windows用の両方のパッケージをダウンロードし、Windows cmdで実行できました。
それらを Cygwin で動作させるために、次のことを試しました。
PhantomJS と CasperJS の両方の tar/zip ファイルをダウンロードし、「bin」フォルダーの内容を C:\cygwin\bin にコピーしました。しかし、cygwin で phantomjs と入力すると、次のようになります。
/usr/bin/phantomjs: バイナリ ファイルを実行できません
次に、私はやろうとしました:
pip インストール git+git://github.com/ariya/phantomjs
しかし、しばらく待った後、次の応答が返ってきました。
git+git://github.com/ariya/phantomjs のダウンロード/解凍 git://github.com/ariya/phantomjs を /tmp/pip-dCF1oZ-build にクローン作成 git+git:/ からパッケージの setup.py egg_info を実行/github.com/ariya/phantomjs トレースバック (最新の呼び出しが最後): ファイル ""、16 行目、IOError: [Errno 2] No such file or directory: '/tmp/pip-dCF1oZ-build/setup.py'コマンド python setup.py egg_info: Traceback (最新の呼び出しは最後) からの完全な出力:
ファイル ""、16 行目、
IOError: [Errno 2] そのようなファイルまたはディレクトリはありません: '/tmp/pip-dCF1oZ-build/setup.py'
---------------------------------------- コマンド python setup.py egg_info がエラー コードで失敗しました1 in /tmp/pip-dCF1oZ-build 完全なログを /home/tkondapalli/.pip/pip.log に保存
これを機能させる方法についてアドバイスはありますか?Cygwin 環境で PhantomJS/CasperJS を使用している人はいますか?
また、ダウンロードして C:\cygwin\bin ディレクトリにコピーしている .exe は Linux 用のものだと思っていたので、うまくいかないのでしょうか? これは、cygwin でソースからコンパイルする必要があることを意味します...
そこで、phantomjs をビルドするための指示に従い始めました: http://phantomjs.org/build.html
最初に行う必要があるのは、devel 用に OpenSSL をビルドすることですが、これも cygwin 用にこれを行う方法がわかりません! そのため、今のところこの手順をスキップしましたが、これはおそらく正しくありません。
github からソースをダウンロードして、ビルドしようとしました。次のエラーで失敗しました:
Makefile:217: ターゲット `qtemporaryfile.o' のレシピが失敗しました make: * [qtemporaryfile.o] エラー1 止まる。./build.sh: 90 行目: src/qt/bin/qmake: そのようなファイルまたはディレクトリはありません
以前に Linux の実行可能ファイルをダウンロードしていたので、動作していませんでした。今回は、Windows 用の実行ファイルをダウンロードして C:/cygwin/bin に配置したところ、うまくいきました。
cygwin が Linux エミュレーターである場合、Windows 実行可能ファイルをダウンロードする必要がある理由がわかりません。これは私を混乱させますが、少なくとも今はうまくいきます!
javascript - ネストされたループ内のリンクをクリックする CasperJs
PhantomJS/CasperJS を使用して Web ページをスクレイピングしようとしています。ここ数日、ドキュメントを読んだり、オンラインで検索したりしてきましたが、行き詰まっています。
私がスクレイピングしているページには、年、月、日という 3 つのレベルのリンクが表示されます。年、月、日を選択すると、#count div にカウントが表示されます。また、月は実際には #imageLoad div 内の画像を変更する入力です (これは必要ありません)。
リンクをループして、年、月、日の組み合わせごとに表示されるカウントを記録しようとしています。ご覧のとおり、月は状況を変える入力です。
いろいろ試してみました。私がやりたい主なことは、リンクの各セットをループし、リンクをクリックしながらネストされたループです。コードは次のとおりです(jQueryを使用しています):
これは、リンクの各セットを順番にループし、年、月、日のすべてのバリエーションからすべての値を取得すると考えました。
しかし、スクリプトで月の入力をクリックすると、スクリプトが壊れて次の casper.then ステートメントに移動します。これを行うためのより良い方法はありますか?
私はこれについて間違った方向に進んでいると感じていますが、他に試したことは何も実りがありません. 次の「その後」にブレークすると、ループに戻ることはないように常に思えます。
でループしてみましたCasper.each
が、事前にいくつの要素があるかわかりません。
前もって感謝します。
javascript - casperjs:リモートdivをクリックしてクラス名を更新するにはどうすればよいですか?
CasperJSを学習する方法として、リモート ページの div でクリック イベントを開始し、クリックした後に div のクラス名を変更しようとしています。アイデアは、最初のクリック可能な div を見つけてクリックし、クリック済みとしてマークして、他のクリック可能な div にスキップできるようにすることです。リモート ページの div タグのマークアップは次のようになります。
次のcasperjsコードを試しました:
うまくいかないようです。まず、div でマウス クリック イベントを正しく開始しているとは思いません。私は何が欠けていますか?次に、更新された html を取得しても、div のクラス名に変更が見られません。このステップを間違った方法で行っていますか?
python - スクレイプを使用してフォームの送信を完了し、ブラウザが実行できるすべてのことを実行できます
ウェブサイトにフォームを送信する必要があるタスクがありますが、APIを提供していません。私は現在Webドライバーを使用していますが、コードとブラウザーの間の非同期性のために多くの問題に直面しました。で使用する軽量で信頼性の高いライブラリ/ツールを探しています。ユーザーがブラウザで実行するすべてのタスクを実行できます。
Casperjsは私の仕事をすることができるオプションの1つですが、私はpythonに精通しており、scrapyはcasperjsと比較してより大きな開発者コミュニティを持っています。
ブラウザなしのナビゲーションユーティリティ、軽量、フェイルプルーフは、関連する質問の1つです。
phantomjs - リモート JavaScript 関数を呼び出す
phantomjs や casperjs を使って、リモートサイトで定義した JavaScript 関数を実行することはできますか?
ドキュメントに表示されるのは、phantomjs と casperjs で組み込み関数を呼び出すことだけですが、とにかく phantomjs や casperjs でこれを行うにはありますか?
javascript - Phantom J、CasperJs 外部スクリプトが正しく評価されない
ここで興味深い問題があります。私は injectJs を使用して、外部ファイル (site.js) を私の phantomJs/CasperJs スクリプトにロードしています。読み込みは問題ありませんが、関数は評価されておらず、文字列として返されています。
ここにsite.jsがあります:
これが私のphantom.jsスクリプトです:
コンソールに「これは名前です」と出力されることを期待しますが、代わりに「関数(){ this.getName = function(){ return 'これは名前です'; }}'
私もそれを eval() してみましたが、役に立ちませんでした (eval?)。
ご協力いただきありがとうございます。
phantomjs - CasperJS/PhantomJs によるスクレイピング
ある人気のあるサイトから CasperJS を使用して一部のデータを破棄したいと考えています。プロキシのプールを使用して、すでに一部のデータを正常にスクレイピングしました。今、HTTP リクエストに付属する HTTP REQUEST ヘッダーが心配です。私と私のサーバーに関する多くの情報があることは知っています。送信 HTTP ヘッダーを削除または変更する方法はありますか。
python - python mechanize blank download または casperjs でそれを行う方法
ajax を使用して URL をロードし、シリアル ダウンロードを許可しないサイトから研究プロジェクトの情報をダウンロードしています。からの URL をcasperjs
ファイルにダンプしbrowser.retrieve(url,dump_filename)
、mechanize
. ほとんどの場合、空のファイルがダウンロードされますが、定期的にコンテンツでいっぱいになります。いつでもデータを取得できるようにヘッダーを変更する方法はありますか。また、casperjs
ダウンロードの代替も大歓迎です。download()を試しcasperjs
ましたが、空のファイルも保存されます。ヘッダーと関係があると思います。ファイルのダウンロードは、常にブラウザーで機能します。
jquery - グリースモンキーのcasperjsのようなユーザークリックをシミュレートするライブラリはありますか?
ユーザーのクリックをシミュレートするためのユーザースクリプトを作成します。
私はを使用してjquery.trigger
いますが、CasperJSのように私を救うことができる3番目のlibがあるのだろうか。
だから私は次のようなものを使うことができます: