scrapyのバックエンドDBをBigQueryにしたい
こんなことをしたい
- クローリングコードをscrapyで作成している。
- クローリング結果をBigQueryに保存したい。つまり、バックエンドDBをBigQueryにする。
こうすればいい
- pipelines.pyの中にBigQueryに保存するためのメソッドを作成する。
こんな仕組み
scrapyがプロジェクトを新規作成すると、scrapyはpipeline.pyというスクリプトファイルを自動生成する。
pipeline.pyはspider.pyの後続処理を書くためのスクリプトファイルである(もちろん、自分で任意のスクリプトファイルを用意しても良い)
pipelineの中には、BigQueryのDBハンドラとでも言えるクラスを用意する。クラスはscrapyから継承しなくても良い。
大切なポイントは、次の3つのメソッド。
- open_spider
- close_spider
- process_item
- このメソッドの中にBigQueryへの保存処理を書く。
pipeline.pyを作ったら、settings.pyの変更も忘れずに。
このブログを参考にして作業をした。
BigQueryへの書き込みにはこのパッケージを利用した。DataframeをよしなにBigQueryに突っ込んでくれるので、とても楽であった。
ディスカッション
コメント一覧
まだ、コメントがありません