Pythonでできる!ウェブサイト・アプリ構築とスクレイピング

PythonでWebサイト・Webアプリの開発がしたい…
PythonでWebサイトのスクレイピングがしたい…
でもどんなライブラリを使えば良いんだろう…

なんでもできちゃうPythonですが、なんでもありすぎてどれを使えばいいのかわからない、っていう方、多いんじゃないでしょうか。

こんにちは!機械学習インストラクターのフクロウです!

この記事では、Webサイト・Webアプリケーションの実装に使うフレームワークと、Webスクレイピング(Webからのデータ収集)に使えるライブラリを紹介していきます!

機械学習に強いPythonですが、Web開発にも強力なツールが揃っています!どんなツールを使えば良いのかわからない初心者の皆さん向けに、何を調べれば勉強を始められるかが分かる情報をまとめましたので、Python Web開発の最初の一歩としてこの記事を見ていただければ嬉しいです!

この記事はこんな人のために書きました。

  • オブジェクト指向プログラミングまでの大まかな理解を終えた学習者で、WebサイトやWebアプリケーションの開発をPythonで行いたい人
  • WebページのスクレイピングをPythonで行いたい人
  • どんなライブラリを使えばいいかわからない人

おすすめのWebフレームワークまとめ

そもそもWebフレームワークとは?

Webサイトを作ったり、Webアプリケーションを作るときには、ユーザーからのアクセスに対してサーバー側で処理をしないと行けない場合があります。

Webサイト・Webアプリケーションは2つのコンポーネントに分けることができ、これがフロントエンドとバックエンドです。


フロントエンド

HTML、CSS、JavaScriptなどを使ってユーザーが実際に見たり操作したりする画面を作ります。


バックエンド

PHPやRubyの「Ruby on Rails」などを使い、ユーザー側からは見えないサーバー側の処理を作ります。

そういうときに、Webページを動的に生成するプログラムが必要になります。これを実現するのが、今回紹介するWebアプリケーションフレームワークです!つまりこの章で紹介するのはRuby on Railsの仲間ということになります。

PythonのWebフレームワーク

さて、PythonにはたくさんのWebフレームワークがあります。代表的なものは以下の5つです。

  1. Django
  2. Flask
  3. Bottle
  4. Pyramid
  5. Tornado

どれも素晴らしいフレームワークですが、個人でWebアプリケーションやWebサイトを構築するならば、DjangoかFlaskがおすすめです。

詳しくは以下の記事で紹介しているので、興味があれば読んでみてください!

PythonでWebアプリケーションを開発!人気のフレームワークも大紹介
更新日 : 2020年7月3日

Django

DjangoはWebフレームワークに求められる機能をほとんど網羅したオールインワンなフレームワークです。

間隔としてはRuby on Railsに近く、大規模なWebサイト・Webアプリケーションの開発から、小規模な個人プロジェクトまでなんでも作ることができます。

ユーザーも多く、日本語にこだわらなければ非常に膨大な情報がWeb検索をするだけで手に入るでしょう。

Djangoについては、侍でも多くの記事を公開しているので、ぜひ参考にしてください。

Flask

Flaskマイクロフレームワークを自称するシンプルなWebフレームワークです。

マイクロフレームワークといっても、必要な機能をカスタマイズで使いする事もできますし、様々なサードパーティ製の拡張ライブラリも公開されています。

手軽にWebサイト・Webアプリケーションを開発するのにもってこいの使いやすさです。最近では、Flaskを使って機械学習アプリケーションを作って公開するような試みを多く見かけます。

学習済みの機械学習モデルとWebサーバーが用意できるなら(これは無料 or 安価に借りることができるものもあります)、Flaskを使って手軽に自作のWebサービスを公開できます。

Flaskの入門記事は以下から!

Flaskの勉強方法は以下から!

おすすめのスクレイピングライブラリ

そもそもWebスクレイピングとは?

Webスクレイピングとは、HTMLなどのファイルから必要な情報を取得することを言います。

また、Webクローラーというスクレイピングと一緒によく使われるものがありますが、こちらはWebを巡回して対象ページのデータを収集するものを言います。

PythonのWebスクレイピングライブラリ

さて、PythonでWebからデータを取ってくる際によく使われるのは以下のとおりです。

  1. Requests
  2. Beautiful Soup
  3. Scrapy

この中で最もシンプルなのはRequests。これはHTTPリクエストを使うためのツールで、APIへのアクセスみたいなものにも使いますね。

Beautiful Soupはスクレイピングに特化したツールで、HTMLを始め様々な構造化文書(タグなどで修飾されたテキストデータのことです。このような文章は機械には読みやすいんですが、人間には読みづらいですね。)のparserが使えます。

最期にScrapyですが、これはWeb スクレイピング、Web クローリングのどちらもをこなす万能ツールです。単一ファイルのスクレイピングだけで無いのならば、Scrapyを使うことをおすすめします。

以下の記事で網羅的に解説しているので、ぜひ御覧ください。

【Pythonクローラー入門】クローリング スクレイピング方法 総まとめ
更新日 : 2020年5月18日

まとめ

この記事では

  • WebアプリケーションやWebサイトを作るためのWebフレームワークとはなにか
  • Webからデータを収集するWebスクレイピング・Webクローリングとはなにか
  • これらにおすすめのライブラリはなにか

について紹介しました。Pythonでこれらのツールを使うことの利点は、Pythonで作ったその他のシステムと簡単に統合できる点だと思います。

  1. Webスクレイピングなどによるデータ収集
  2. 機械学習の訓練
  3. デモアプリの作成

これらがすべてPythonで完結するのが非常に強力です。ぜひ使いこなしてください。

LINEで送る
Pocket

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

フクロウ

フクロウ

第一言語はPythonです。
皆さんRustやりましょう。