scrapyのバックエンドDBをBigQueryにしたい

02/10/2021

A8バナー広告

こんなことをしたい

  • クローリングコードを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に突っ込んでくれるので、とても楽であった。

Python

Posted by blog_author