PhotomjsはJSを描画した後のページ(Pythonコード)をキャプチャします。


最近はあるサイトを登る必要がありますが、いかんせんページはJSでレンダリングして作られたので、普通の爬虫枠がよく分かりません。Photomjsで代理店を作りたいです。
PythonがPantomjsを呼び出して既成の第三者倉庫がないようです。(もしあったら、小編集を教えてください。)一周歩きましたが、pyspiderだけが既製のプランを提供しています。
簡単に試用してみましたが、pyspiderは初心者のために作った爬虫具のように感じられます。例えば、お母さんのように、細かいところまで行き届いていたり、おしゃべりしたりします。軽い小物はもっと人に好かれるべきです。私も私心を持って、私の一番好きなBeautiful Soupを持って一緒に使うことができます。PyQueryを勉強しなくてもいいです。Pythonの悪い体験も我慢しなくてもいいです。
だから、午後の時間をかけて、pyspiderの中でPhantomjsの代理を実現する部分を外して、独立して小さい爬虫類モジュールになりました。好きになってほしいです。
準備工作
もちろんPhotomjsが必要です。無駄話です。Linuxではsupervisordで守るのが一番いいです。キャプチャを維持しなければならない時はPhantomjsはずっとオープン状態です。
プロジェクトパスでのphantomjs_fetch.js起動:phantomjs phantomjs_fetch.js[port]
トラナド依存(トラナドのhttp clientモジュールを使用しています。)をインストールします。
呼び出しは超簡単です。

from tornado_fetcher import Fetcher

#       
>>> fetcher=Fetcher(
  user_agent='phantomjs', #       User-Agent
  phantomjs_proxy='http://localhost:12306', # phantomjs   
  poolsize=10, #    httpclient  
  async=False #       
  )
#     Phantomjs   ,    JS!
>>> fetcher.fetch(url)
#           JS  (   function   !)
>>> fetcher.fetch(url, js_script='function(){setTimeout("window.scrollTo(0,100000)}", 1000)')

コードhttps://github.com/2shou/PhantomjsFetcher