- はじめに - 最近はWebスクレイピングにお熱である。 趣味の機械学習のデータセット集めに利用したり、自身のカードの情報や各アカウントの支払い状況をスクレイピングしてスプレッドシートで管理したりしている。 最近この手の記事は多くあるものの「~してみた」から抜けた記事が見当たらないので、大規模に処理する場合も含めた大きめの記事として知見をまとめておく。 追記 2018/03/05: 大きな内容なのでここに追記します。 github.com phantomJSについての記載が記事内でありますが、phantomJSのメンテナが止めたニュースが記憶に新しいですが、上記issueにて正式にこれ以上バージョンアップされないとの通達。 記事内でも推奨していますがheadless Chrome等を使う方が良さそうです。 - アジェンダ - 主に以下のような話をします。 - はじめに - - アジェンダ
概要 大井競馬場に行く機会があったので、機械学習を使って競馬の結果を予測できるかをやってみました。 その結果、帝王賞で一位を当てることができたので、記事を書きます。 かなり適当な予測なので、遊びとして見てもらえたらと思います。 証拠 当たったという証拠に、記念でとった馬券画像。 機械学習で予測したものと、パドックを見て予測したものと、2つ買いました。 (びびって複勝、しかも300円) 問題の設定 大井競馬場で行われる帝王賞の1位のみを当てます。 競馬には、色々な馬券の買い方がありますが、今回は簡単でシンプルな問題設定としたかったので、1位のみを予測することにしました。 データの取得 教師あり学習を行うので、過去の競馬結果のデータが必要です。 こちらのサイトからデータをクローリングしました。 南関東4競馬場公式ウェブサイト レース情報のページから、レースに出る馬の過去情報があるページへのリン
Python3で、urllibとBeautifulSoupを使ってWebページを読み込む方法についてまとめます。 urllibを使ったページの取得 まず、Python3の標準ライブラリであるurllibを使ってページを取得します。Python2から書き方が変わっているので注意が必要です。 import urllib.request url = 'http://www.rekibun.or.jp/grutto/museum2015.html' response = urllib.request.urlopen(url) data = response.read() ここで、response.read()はbytesオブジェクトを返します。以下はその抜粋です。日本語がバイト列として表現されてしまっています。 b'<!DOCTYPE html> (中略) <title>\x8c\xf6\x89v
多様なWebサイトからスクレイピングする際、Webサイトによっては文字化けが発生することがあります。 RequestsとBeautiful Soupを組み合わせる場合に、なるべく文字化けを減らす方法を解説します。 Beautiful Soupはパーサーを選択できますが、ここではhtml.parserに絞って解説します*1。 結論 以下の2点を守ると概ね幸せです。 Content-Typeヘッダーのエンコーディングを参照するコードは下の方に掲載しています。 1. Chardetをインストールしておく。 $ pip install chardet 2. RequestsのResponseオブジェクトをrとしたとき、BeautifulSoupのコンストラクターには(r.textではなく)r.contentを渡す。 import requests from bs4 import Beautiful
※【2018/04/17追記】 Phantom.jsはメンテナンスが終了したようです。今後はGoogle Chromeを使用してJavascriptの処理を行っていくことになります。以下の記事で解説していますので合わせてご覧ください。 zipsan.hatenablog.jp 【追記終わり】 最近スクレイピングのスクリプト書いて遊んでいるのでそれについてのメモがてらに。 Pythonでスクレイピングする方法は多々あるみたいなんですが,個人的に一番使いやすかった(慣れ?)のがこの組み合わせでした。 以前Pythonのurllib.request+Beautifulsoupでレスポンスhtmlの解析をして次々とたどっていくようなスクリプトを書いていたんですが、これだとJavascriptで追加されたエレメントは受け取れなかったり、リダイレクト処理がめっちゃ大変だったり色々と面倒でしたが今回Se
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く