萬九郎の硬い船

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

scraping

Python3でScrapyを使う

『PythonによるWebスクレイピング』には、 残念ながら、Scrapyは、Python2.7では動きますが、Python3.xバージョンはまだリリースされていません。 と書いてあり、ウワアめんどくせえ、これが複数バージョンのPythonを仮想環境で分離するとよいと…

urlparseでURLを分解する/組み立てる

urllib.parseのurlparseを使うと、受け取ったURLを解析して分解したり、組み立て直すことができる。 urllibについては、本の冒頭で「繰り返し出てくるからドキュメントを読んでおけ」とあったとおり、細かい部分は一切説明がないので、メモしておく。 scheme…

なんだかいちいちつまずいてしまう

Wikipediaの日本語URLのエスケープの件でハマったり、『PythonによるWebスクレイピング』を細かい部分まで噛み締めて読み進めようとすると、なんだかいちいちつまずいてしまう。もしかしたら、何かもう少しやさしい参考書を読んだ方がよいのではないか?とい…

BeautifulSoup4のfind()とfind_all()について理解を深める

BeautifulSoup4のメソッドfind()とfind_all()について、ちゃんとごまかさずに理解しておかないと後々困りそうな気がした。 せっかくなので、ドキュメントの該当部分をちょっと自力で訳してみて知識を定着させようと思う(以下訳文)。 ツリーの検索 Beautifu…

日本語を含むURLでつまづく

本の中で、課題としてWikipedia(英語版)を使ったものが出てきたので、日本版Wikipediaに置き換えてやってみようと思ったところ、URLに日本語が含まれているせいでUnicodeエンコードエラーが起きた。 ググったところ、先人の知恵があったので試してみたが、…

cssのclassを手がかりに要素を取得する

スクレイピングで要素を取得する際に、cssのclassが有効活用できる。 たとえば、このブログ(現状ではWordPressのTwenty Fifteenテーマをそのまま使っている)の記事タイトルだけを抜き出したい場合には、 <h2 class="entry-title"> <a h…

例外に備えさせていただく

本の中で、スクレイピング対象のデータフォーマットがひどかったりしてスクレイパーがエラーを起こして止まったときなどに、 Webサイトを作った開発者の名前を(それからおかしなフォーマットも)呪いたくもなるでしょうが、本当に腹が立つのは、そもそもそ…

BeautifulSoupをインストールする

Macの場合、 $sudo easy_install pip でPythonパッケージマネージャーpipをインストールした後 $pip install beautifulsoup4 でBeautifulSoupをインストールする。らしいのだが、自分の環境には既にAnacondaが入っていたので、 Requirement already satisfie…

urllib — URL を扱うモジュール群

urllibは『PythonによるWebスクレイピング』のいろんな場面で使うので、ドキュメントを読んでおくといいらしい。 本の中のURLは英語版だったので、日本語版にリンクを張っておく。本当は英語版で読む習慣をつけたほうがいいんだろうけど。

『PythonによるWebスクレイピング』を勉強しはじめる

ちょっと前から、情報収集にWebスクレイピングを導入したいなあとボンヤリ考えていたのだが、何を使って実践しようかなと検討していたところ、どうやらO'Reillyから去年出た『PythonによるWebスクレイピング』という本がとても良いらしい、というのを知った…