PythonはPhantomjsを利用してJSをレンダリングしたページをキャプチャする
最近あるウェブサイトに登る必要があって、仕方なくページはすべてJSがレンダリングした後に生成したので、普通の爬虫類のフレームワークは定まらないで、そこでPhantomjsで1つの代理店をかけることを考えます.
PythonはPhantomjsを呼び出して既成のサードパーティライブラリがないようで(もしあれば2ちゃんに教えてください)、一周してみるとpyspiderだけが既成のシナリオを提供していることがわかりました.
簡単に試してみると、pyspiderは初心者のために作った爬虫類の道具のように、お母さんのように、細かいことがなく、おしゃべりをしているような気がします.軽量な小物はもっと人気があるはずで、私も少し私心を持っていて、私の大好きなBeautifulSoupを持って一緒に使うことができて、PyQuery(pyspiderはHTMLを解析するために使う)を学ぶ必要はありません.ブラウザがPythonを書く悪い体験に耐える必要はありません(窃笑).
だから午後の時間をかけて、pyspiderの中でPhantomjsエージェントを実現した部分を分解して、独立して小さな爬虫モジュールになって、みんなが好きになることを望んでいます(binuxに感謝します!).
準備作業もちろんPhantomjsがあるんだよ、くだらない話!(Linuxではsupervisordで守ったほうがいい、掴み取らなければならないときはPhantomjsはずっと開いている) 用プロジェクトパス下のphantomjs_fetcher.js起動: tornado依存(tornadoを使用したhttpclientモジュール) をインストール
呼び出しは超簡単です
古い規則、コードは小さい2のGithubで、指摘を歓迎します:PhantomjsFetcher
由来:建設者は
PythonはPhantomjsを呼び出して既成のサードパーティライブラリがないようで(もしあれば2ちゃんに教えてください)、一周してみるとpyspiderだけが既成のシナリオを提供していることがわかりました.
簡単に試してみると、pyspiderは初心者のために作った爬虫類の道具のように、お母さんのように、細かいことがなく、おしゃべりをしているような気がします.軽量な小物はもっと人気があるはずで、私も少し私心を持っていて、私の大好きなBeautifulSoupを持って一緒に使うことができて、PyQuery(pyspiderはHTMLを解析するために使う)を学ぶ必要はありません.ブラウザがPythonを書く悪い体験に耐える必要はありません(窃笑).
だから午後の時間をかけて、pyspiderの中でPhantomjsエージェントを実現した部分を分解して、独立して小さな爬虫モジュールになって、みんなが好きになることを望んでいます(binuxに感謝します!).
準備作業
phantomjs phantomjs_fetcher.js [port]
呼び出しは超簡単です
python
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.phantomjs_fetch(url) # JS ( function !) >>> fetcher.phantomjs_fetch(url, js_script='function(){setTimeout("window.scrollTo(0,100000)}", 1000)')
古い規則、コードは小さい2のGithubで、指摘を歓迎します:PhantomjsFetcher
由来:建設者は