萬九郎の硬い船

プログラミング学習記録など

Python3でScrapyを使う

PythonによるWebスクレイピング』には、

残念ながら、Scrapyは、Python2.7では動きますが、Python3.xバージョンはまだリリースされていません。

と書いてあり、ウワアめんどくせえ、これが複数バージョンのPythonを仮想環境で分離するとよいと書いてあった理由か、と思ったが、調べてみるとPython3に対応したScrapyがリリースされたらしい

$ pip install scrapy

とすると無事インストールできたようだ。ひとまず、仮想環境の問題が先送りにできた。

追記(2017.5.16)

その後、本に載っているサンプルコード(wikispider)を写経して実行してみたのだが、エラーが起きてうまく動かなかった。Scrapyのバージョンが違うのが原因なんじゃないか、というニオイがする。ここで無駄にハマるよりは、とりあえずScrapyが動いているところを自分の目で確かめておくのがいい!と判断し、この記事にあるコードを写経して実行したところ、正常に動いた。 チュートリアルをひととおりやってみた方がいいかもしれない、と思ってやってみたら、本のサンプルコードを実行したときと同じく

$ scrapy cralw quotes

が通らず、

raise KeyError("Spider not found: {}".format(spider_name))
KeyError: 'Spider not found: quotes'

というエラーが出る。これ、やっぱりPythonとScrapyのバージョンの問題なのかもしれない。AnacondaとScrapyの組み合わせが何か怪しそうだ。Scrapyのインストールガイドにも目を通した方がいいかもしれない。やはり仮想環境で分離する必要があるか…。