Python
Scrapy でバグっぽい挙動にぶつかったので状況と解決策の記録です。 クローラーの実行に失敗する いつものように Scrapy でクローラーを走らせようとしたらエラーでコケました。 エラーのログはこんな感じ。 2018-01-27 14:36:06 [scrapy.utils.log] INFO: S…
乾・岡崎研究室が公開している 言語処理100本ノック 2015 に取り組んで行きます。 使用する言語は Python3 です。 第3章です。一部の方が大好きな 正規表現 の章です。 私は…、あんまり好きじゃないですね。 第3章: 正規表現 Wikipediaの記事を以下のフォー…
まさか続くとは。 乾・岡崎研究室が公開している 言語処理100本ノック 2015 に取り組んで行きます。 使用する言語は Python3 です。 第2章まで出来たんでまとめます。 第2章: UNIXコマンドの基礎 hightemp.txtは,日本の最高気温の記録を「都道府県」「地点…
乾・岡崎研究室が公開している 言語処理100本ノック 2015 に取り組んで行きます。 使用する言語は Python3 です。 第1章から第10章で構成されているのでまずは第1章から。 ではスタート。 00. 文字列の逆順 文字列"stressed"の文字を逆に(末尾から先頭に向…
Python で日付計算と言えば datetime モジュールですね。まぁまぁ便利なんですが、標準では 月初 や 月末 を求めることができません。 なのでちょっとしたユーティリティコードとして書いておきました。 N ヶ月後・N ヶ月前 add_month() は N ヶ月後の同日同…
この記事は クローラー/Webスクレイピング Advent Calendar 2016 の10日目の記事です。 9日目は @hotu_ta さん、11日目は @TakesxiSximada さん でした。 Web スクレイピングはイレギュラーとの戦いです。特にそれが Web 定点観測のためのスクレイピングで…
通常、print はユニコード文字列であっても読みやすく表示してくれます。 print(u"ほげ") # => ほげ しかし pprint モジュールの pprint() を使うと、なぜだかユニコード文字列がエスケープされるようになります。 pprint.pprint(u"ほげ") # => u'\u307b\u30…
企業活動をするなかで見積書や請求書といった書類を発送するシーンは多いですよね。 私が勤める会社でもそういった書類をクライアントに郵送していますが、郵送する前の書類をスキャンしてスキャンデータを残しておく決まりになっています。 書類を作るのに…
takatoh 様 が同じ問題を Ruby と Scheme で解いてくださいました。許可を得て転記させていたいています。 Ruby 版の簡素さはさすがという感じです。そして、Scheme 版の S式 は慣れないと読めないし分からないのが面白いですね。takatoh 様、本当にありがと…
画像の中から人の顔が写っている場所を自動的に判定する 顔検出 ってやつをやってみようと思います。 そのために OpenCV という有名なライブラリを使用します。OpenCV 自体は様々な言語と組み合わせて使うことが出来るのですが、今回は自分が書き慣れている …
突然ですが Scrapy v1.1.0 から Python 3 に対応して嬉しいですね。これまで Scrapy のために 2.7 で通してきたんで。 さて、今回は Scrapy における エラーハンドリング(例外処理) についてまとめようと思います。 スクレイピングという行為は外部の構造化…
日本語の処理をしているときに厄介なのが表記揺れですよね。「問い合わせ」と「問い合せ」など。人間が見れば同じ単語だと分かっても、プログラムで処理する際に単純に等号で比較してしまうと別の単語扱いになってしまいます。 今回は類似度を用いて二つの単…
スクレイピングネタです。 Scrapy は Spider の perse() メソッドの中で新しい Request オブジェクトを yield してあげるだけで、次々に URL を辿ってクローリングしていけるので便利ですね。 例えば、response.xpath("//a/@href").extract() とかすればペー…
Scrapy の start_urls を外部ファイルから読み込んで設定する方法を書き留めます。Scrapyのバージョンは 1.0.4 を想定しています。 現状だとスクレイピング対象の URL はハードコーディングされています。対象 URL をソースコードに直書きしつつ管理したいと…
最近はPython書いてます。 さて、settings.py に記述したカスタムの設定をItem Pipelineで使いましょう。 Scrapyのバージョンは1.0.3を想定しています。 まぁ、公式ドキュメントのサンプルそのままなんですけど。 まずは settings.py に適当に書く ssettings…