Python2年生 スクレイピングのしくみ 体験してわかる!会話でまなべる!
- 翔泳社 (2019年10月4日発売)
- Amazon.co.jp ・本 (192ページ)
- / ISBN・EAN: 9784798161914
作品紹介・あらすじ
Pythonでスクレイピングを体験してみよう!
【スクレイピングとは】
機械学習やデータ分析になくてはならない「データ」。
このようなデータは、インターネット上に膨大にありますが、Pythonを使えば効率よくデータ収集できます。
こうした手法を「スクレイピング」といいます。
サイト自体もオープンデータ化が進んでおり、データを集めやすい環境が整ってきています。
【Python2年生について】
「Python2年生」シリーズは、「Python1年生」を読み終えた方を対象とした入門書です。
ある程度、技術的なことを盛り込み、本書で扱う技術について身に着けてもらいます。
【ターゲット】
・ネット上からデータ収集を行う初心者
・データ分析の手前の初心者
【本書の売り】
ヤギ博士&フタバちゃんと一緒に、インターネットからのファイルのダウンロード方法、
HTML解析の方法、いろいろなデータの読み書き、
APIの使い方といったデータ収集と便利なライブラリを利用した簡単な可視化手法を解説する書籍です。
また最終的にデータ収集を自動化する方法も簡単に解説します。
感想・レビュー・書評
-
詳細をみるコメント0件をすべて表示
-
スクレイピングやAPIについて、実サイトを使った実例があるため、実用的な内容であるという、実感が湧いた。
-
スクレイピングにおいては本当に基礎的な内容。概要を掴むにはこれくらいのボリュームでスクレイピングのフローをつ掴むと良いと思う。
-
サンプルコード豊富で試しやすい。
とにかくわかりやすさ重視なのでつまずくことは基本ない。 -
[墨田区図書館]
Pythonを検索していて見つけた本。
「2年生」となっているので、シリーズの1年生を読んでからの方がいいが、プログラムの基礎を理解していて、Pythonを実行する環境が整っていて、書式の理解、外部ライブラリをインストールして、モジュールを使う知識があればこの本からでも大丈夫。
スクレイピングという言葉自体は耳にしていたものの、全くその手の知識を持っていなかったので、最初の「robots.txt」から知らなかった世界。こういう本を小学生から読む子もいるなら、これからの社会、どんどん知識格差が拡がっていくんだろうなーと子供の将来を案じてしまった。
あと、下記に概要をまとめていて思ったこと。
巻末には用語索引はあるけれど単に50音順で意味的な索引はないので、本書でインストールしたライブラリ/モジュール一覧とか、紹介したサイト一覧とか、そういうのもあると、本書を読むための索引としてではなく、本書を用いて学習(覚えよう)とする子供たちへの手引きにもなるんじゃないかな。
■1章Pythonでデータをダウンロード(requests)
サイトアクセスする際には、クローリング禁止のところは避け、著作権を守りつつ、アクセス過多で業務妨害しないこと。
サイトのルートディレクトリにある「robots.txt」ファイルに「サイト全体をクローリングしないように(User-agent: * ↲ Disallow: / )」とあったり、HTML内にある「robots metaタグ」に「このページ内のリンクを辿らないように(<meta name="robots" content="nofollow">)」とあれば、クローリングはしないこと。
■2章 HTMLの解析(BeautifulSoup)
soup.findを用い、属性内をタグ検出する。
■3章 表データの読み書き(pandas, matplotlib, openpyxl)
表データを読み込んで、データの追加、削除、抽出、集計、書き出しなどを行う。
「1年生」でも用いたmatplotlibでグラフ表示
DataFrame=pandas.read_csv("ファイル名.csv", header=None, encoding="shift_jis")
DataFrame=pandas.read_excel("ファイル名.xlsx", sheet_name="シート名")
DataFrame.sort_values("列名", ascending=False)
DataFrame.to_excel("ファイル名.xlsx", index=False, sheet_name="シート名")
with open("読み込みファイル名", mode="w") as f:
f.write(出力ファイル名)
■4章 オープンデータの分析(folium)
著作者の情報を明記するだけで無料で自由に利用できる「CC BY」などのCCライセンスで公開されているオープンデータ情報(csv形式、XML形式、Excel形式、PDF形式など)をDLなどで入手し、あとは3章でやったようにデータを抽出・活用する。
■5章 Web APIでデータ収集()
Web上の他のコンピュータの機能を、HTTPを使って利用できるしくみである"Web API"を活用する。具体的には各種サーバ(Google, Amazon, 楽天など)にHTTPでリクエストを送ると、種々のデータ情報(JSON, XML, HTML, 画像ファイルなど)を得られる。その仕様はサーバーごとに異なり、公開されているので確認して使う。多くは無料アカウントを作成し、APIキーを取得することで利用できる。
Url="http://~{文字列1}~{文字列2}~"
Url=Url.format(文字列1="置き換え文字列1", 文字列2="置き換え文字列2")
with open("読み込みファイル名", mode="r") as f:
jsondata=json.loads(f.read())
jsondata=requests.get(url).json()
■Python公式DLサイト:
https://www.python.org/downloads/
■Python公式の外部ライブラリサイト(Pypl/パイピーアイ):
https://pypi.org/
■テスト用サンプルページ:
https://www.ymori.com/books/python2nen/test1.html
https://www.ymori.com/books/python2nen/test2.html
■本書の紹介記事:
https://codezine.jp/article/detail/12230
■翔泳社のサイト
https://www.shoeisha.co.jp/book/detail/9784798164960 -
単純なスクレイピングから、WebAPIやJSONデータの扱い、グラフ化についても説明されています。
入門書としてはすごくわかりやすい本かなと思いました。
とにかくサンプルを動かす形なので、そういう人向けです。 -
スクレイピングの手順を丁寧な解説で進めることが出来る良書。一度、ほかの書籍でスクレイピング関係を一通りやったことがあったが、随分前ということもあり、感覚自体も思い出しながら最後まで実施できた。後は、更に応用出来る部分を試行錯誤しながら、独自のスクレイピングなども行うときに、復習にもなり得る1冊。
-
とにかく、pythonでこんなことまでできるのか、何でもできるやんと思わせられる本。これ一冊読み込めば初歩的なテクニックは身につく、というわけではないと思うが、pythonの世界の広さを教えてくれて、今後のモチベーションにつながる本だった。勉強がんばろう。