Wantedlyは、運命のチームや仕事に出会えたり、人脈を広げ、ビジネスの情報収集に使えるビジネスSNSです。
ヘッドレスブラウザsplashが便利だったので知見を共有します モチベーション jsで構成されたサイトをスクレイピングしたいなと思い立った時、seleniumがデファクトの選択肢として挙げられると思います。 しかしseleniumの含めヘッドレスブラウザはブラウジングが入ってくるので処理がそれなりに遅くなってしまいます。大量のページをスクレイピングする用途では不向きです。 そこで、サイトをしっかりブラウジングしながらもパフォーマンスを両立するヘッドレスブラウザという要件でseleniumの代わりをさがしていたところ、splashに白羽の矢が立ちました。 splashとは scrapyの開発元であるscrapinghub社が開発しているスクレイピングに特化したヘッドレスブラウザです。 splashは他のヘッドレスブラウザとは毛色が違い、Dockerで配布されるHTTP APIです。 ドキュメ
1.はじめに 前回に引き続き、店舗の緯度経度情報を取得します。 今回はMapion電話帳からチェーン展開している企業の店舗情報を取得します。 汎用性を持たせるため、scrapy実行時に引数で以下項目を渡せるようにしています。 ・genre:ジャンルID ・category:カテゴリID ・chain_store:チェーン展開企業ID 例えば、餃子の王将の場合、以下のようになります。 genre=M01(グルメ)、category=002(ラーメン・餃子)、chain_store=CA01(餃子の王将) 2.実行環境・環境構築 実行環境・環境構築は前回と同じ。 3.scrapy item.py、setting.pyの設定も名称/取得項目以外、前回同様なので割愛。 チェーン店舗のトップページ(例)に店舗一覧が載っています。 ただし、このページからは緯度経度情報を取得できないため、各店舗のlin
FAQにも記されていますが、 non-working localStorage in Private Mode. This is a common issue e.g. for websites based on AngularJS. If rendering doesn’t work, try disabling Private mode (see How do I disable Private mode?). Splashはデフォルトでプライベートモードで立ち上がるらしく、プライベートモードだとlocalStrorageが正常に動作しない場合があるよと、、 私は後述するサイトのレンダリングが当初一向にされなかった(=JavaScriptのコードが未解釈だった)ので--disable-private-modeオプション付でdocker runを行ったところ、キチンとレンダリングされる様
The easiest way to render requests with Splash is to use scrapy_splash.SplashRequest: yield SplashRequest(url, self.parse_result, args={ # optional; parameters passed to Splash HTTP API 'wait': 0.5, # 'url' is prefilled from request url # 'http_method' is set to 'POST' for POST requests # 'body' is set to request body for POST requests }, endpoint='render.json', # optional; default is render.html
これは,クローラー/Webスクレイピング Advent Calendar 2016の1日目の記事です. JavaScriptを利用したページをスクレイピングするためには,スクリプトを実行し,ページを適切にレンダリングする必要があります. 本記事では,そのようなケースに便利なPythonライブラリscrapy-splashを紹介します. 前置き ScrapyやSplashを既にご存知の方は読み飛ばして下さい. Scrapyとは? Scrapyとは,Python製のクローリング・スクレイピングフレームワークです.フレームワークというだけあって,Scrapyにはクローリング・スクレイピングに便利なオプションがあらかじめ用意されています. Scrapyに用意されている便利なオプション例 サイトクローリング間隔を設定 robots.txtを解釈したクローリングを自動的に実行可能 Scrapyを利用す
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く