無駄と文化

実用的ブログ

Scrapy

Scrapy+AWS LambdaでWeb定点観測のイレギュラーに立ち向かう

この記事は クローラー/Webスクレイピング Advent Calendar 2016 の10日目の記事です。 9日目は @hotu_ta さん、11日目は @TakesxiSximada さん でした。 Web スクレイピングはイレギュラーとの戦いです。特にそれが Web 定点観測のためのスクレイピングで…

Scrapy でエラーハンドリング for v1.1.3 (※一部未解決)

突然ですが Scrapy v1.1.0 から Python 3 に対応して嬉しいですね。これまで Scrapy のために 2.7 で通してきたんで。 さて、今回は Scrapy における エラーハンドリング(例外処理) についてまとめようと思います。 スクレイピングという行為は外部の構造化…

Scrapy のクローリング中に win32api が無くてコケる問題に対処(Windows10, 64bit, Python2.7)

昨日は Windows で Scrapy 1.1.2 をインストールするために必要な libxml2 のインストールについて解説しました。 blog.mudatobunka.org が、どうやら Windows ではクローリングを実行するときにもう一つ win32api というライブラリが必要になるようです。 w…

Scrapy インストール中に libxml2 が無くてコケる問題に対処(Windows10, 64bit, Python2.7)

Scrapy を最新版の v1.1.2 にしたくて pip install scrapy したらインストール中にコケました。 python -m virtualenv env env\Scripts\activate pip install scrapy とやっても... コケる。 なにやら libxml2 というライブラリが見つからないと言われていま…

Scrapy で相対パスを解決して絶対パスに変換 for v1.0.4

スクレイピングネタです。 Scrapy は Spider の perse() メソッドの中で新しい Request オブジェクトを yield してあげるだけで、次々に URL を辿ってクローリングしていけるので便利ですね。 例えば、response.xpath("//a/@href").extract() とかすればペー…

Scrapy の start_urls をファイルから読み込む for v1.0.4

Scrapy の start_urls を外部ファイルから読み込んで設定する方法を書き留めます。Scrapyのバージョンは 1.0.4 を想定しています。 現状だとスクレイピング対象の URL はハードコーディングされています。対象 URL をソースコードに直書きしつつ管理したいと…

Scrapy の Item Pipeline の中で settings を参照する for v1.0.3

最近はPython書いてます。 さて、settings.py に記述したカスタムの設定をItem Pipelineで使いましょう。 Scrapyのバージョンは1.0.3を想定しています。 まぁ、公式ドキュメントのサンプルそのままなんですけど。 まずは settings.py に適当に書く ssettings…