2017-05-04 5 views
3

私はDistil Networksで保護されているWebサイト( )を掻き取ろうとしていました。chrome-remote-interfaceを使用したNode.jsの掻き取り

私はいくつかの検索を行いました。私の結論は、あなたがJavascriptを使ってSeleniumを使っていることをサイトが検出できるということです。私はchrome-remote-interfaceで戦利品を取った、それは私が欲しいものだが、それから私は立ち往生した。

私は何をしたいのは、次の手順を自動化することです:

  1. Chromeを開き、インスタンス
  2. 移動ページへ
  3. を実行し、いくつかのjavascript
  4. データを収集し、
  5. をファイルに保存
  6. 手順2〜4を繰り返します。

私はANによるデバッグ用クロームのインスタンスを開きます。

google-chrome --remote-debugging-port=9222 

そして、私は、ノード上でコンソールを開くことができます。

chrome-remote-interface -t 127.0.0.1 -p 9222 inspect -r 

私はまたのような

Page.navigate({url:"https://google.com"}) 
Runtime.evaluate({expression:"1+1"}) 

しかし、のような簡単なスクリプトを実行することができますNode.jsにDOMを直接取得することはできませんが、Chrome Developer Toolsコンソールで行うことができます。基本的に私が望むのは、Chrome開発ツールコンソールでできることのような、ノード上のスクリプトを実行することです。

また、掻き取りのためのchrome-remote-interfaceに関する十分な文書はありません。そのための良いリンクはありますか?

答えて

1

Runtime.evaluateで評価されるJavaScriptの式は、DevToolsコンソールの場合と同様にページコンテキスト内で実行されます。

あなたもchrome-remote-interfaceが、それはあなたがあなた自身のNode.jsアプリケーションを作成することができますことを意味ライブラリが主であることを覚えておいてくださいなどDOMドメインを使用してDOM、例えば、DOM.getDocumentDOM.querySelector

と対話することができ、 chrome-remote-interface inspectは単なるユーティリティです。

あなたが助けを得ることができますいくつかの場所があります。

もっと具体的なことをお聞きしたら、お手伝いをしようと思います。

最後に、automated-chrome-profilingを見てみたいと思うかもしれませんが、これは達成しようとしているものに構造的に類似していると思います。

関連する問題