Python初心者にできること・作れるものとは?

プログラミングの波が結構前から来て、どのプログラミング言語がいいんだろう?って調べてみると結構Pythonを目にしますよね。いろんな本も出ているし、なんか人工知能とか凄そうとか思ってしまいます。でも学び始めて何ができるのか分からないのが正直なところ。

そこで、今回はPythonを学び始めて何ができるのか?ってことを少し紹介していきたい。Pythonを学んでどんな事ができるのかな?って思ったら参考にしてみてください。

初心者でもPythonでできること

Python使って色々できることはあるけど、学び始めていきなりWebサービス開発っていうのは結構苦しいのが正直なところですよね。Pythonを学んでちょっとしたら何ができるのかなーって考えてみるとちょっとしたことは色々できると思うので、今回はPythonでできることを3つほど紹介したいと思います。

Pythonでスクレイピング

スクレイピングはweb上の情報を取ってくるやつですね。別にPythonに限った話じゃないけど、webページのデータをプログラムで取得する事ができます。どういった情報が取れるかっていうと画面に映っている情報。例えば、今あなたが見ているこの文章なんかです。

PythonではBeautifulsoupというものを使うと簡単にできるのでちょっとやってみますね。プログラムを書く前にライブラリを入れておきます。

$ pip install requests
$ pip install beautifulsoup4

プログラムはざっくりこんな感じにしましょう。このサイトのトップページの記事のタイトルを取得して表示するプログラムです。

import requests
from bs4 import BeautifulSoup

load_url = "https://gadgelaun.com/"
html = requests.get(load_url)
soup = BeautifulSoup(html.text, "html.parser")

for title in soup.select(".post-title > a"):
    print(title.text)

このプログラムを実行するとこんな感じになります。ファイル名は[youtube_scraping.py]で作ったのでそれを実行。

MacBook-Pro:desktop 〇〇$ python youtube_scraping.py
iPhoneショートカットで定型文をLINEに自動送信する
iPhoneショートカットとGASをつなげてLINEに通知する
【GAS】1日のGoogleカレンダーの予定を毎朝LINEに通知させる方法
GASを使ってGoogleTask(TODO)をSlackにメンション/通知する【GoogleAppsScript】
GoogleAppsScript(GAS)で簡単なWebアプリ開発をする
【iPhone】iMovieの使い方【カット・写真・音楽・テロップ・文字】
LINEアバターの作り方・消し方 - アイコン・背景・保存方法を紹介!
iMovieの文字入れをKeynoteで行う方法
【Mac】iMovieの使い方【カット・写真・音楽・保存・テロップ】
【Mac】無料で使えるおすすめサムネイル作成アプリ
【GAS】Gmailに来たメールをLINEに転送して通知する方法
【無料】文字起こしアプリのおすすめを紹介します
IFTTTでLINEを連携して通知・送信させる方法
【IFTTT(イフト)の使い方】Webサービス・アプリを連携して自動化しよう
IoT家電の事例を紹介!生活がもっと便利にスマートになるかもしれません
iPhoneのメモをPDF・画像として保存する方法
【プログラミング言語なでしこ】日本語でプログラミングを試してみる
【iOS14】ウィジェット写真の固定・変更・複数設定方法
【iOS14おすすめウィジェット】ホーム画面に追加してより便利に!
iOS14新機能一覧【ウィジェット?背面タップ?】
XaaSとは?例とメリット・デメリットを紹介!
Vrewアプリで動画に自動でテロップを入れる方法
【Photoshop×スプレッドシート】動画のテロップを半自動で一括作成
【無料・有料プラン】LINEミュージックの使い方と解約方法
【無料】Repl-AIを使ったLINEチャットボットの作り方
チャットボットとは?種類と事例を紹介します
GoogleKeepの使い方と活用法
パソコン作業を疲れにくくするグッズ?おすすめの周辺機器を紹介します。
家事代行サービスの料金を比較!
ハンドメイド販売サイトのおすすめと選び方

あー、全部出ちゃってますねーこれは。これだけ少ないプログラムでトップページにあるこのサイトの記事のタイトルが全部取れてしまうのはなんかちょっと悲しい気持ちになりますね。まあスクレイピングはこんな感じです。

WebページをChromeのディベロッパーツールで見てHTMLとCSSの構造が分かってしまえば、スクレイピングは結構簡単にできてしまうからpythonを学び始めて「あー、ちょっと情報さらっと取りたいわ」って思ったら試してみるといいかもしれないです。

ちなみに、スクレイピングは禁止されているサイトもあるからそこら辺は利用規約なんかを見てください。例えばYoutubeなんかダメです。

 

本サービスの利用には制限があり、以下の行為が禁止されています。

1. 本サービスまたはコンテンツのいずれかの部分に対しても、アクセス、複製、ダウンロード、配信、送信、放送、展示、販売、ライセンス供与、改変、修正、またはその他の方法での使用を行うこと。ただし、(a)本サービスによって明示的に承認されている

3. 自動化された手段(ロボット、ボットネット、スクレーパなど)を使用して本サービスにアクセスすること。ただし、(a)公開されている検索エンジンを YouTube の robots.txt ファイルに従って使用する場合、または(b)YouTube が事前に書面で許可している場合を除きます。

Youtube利用規約

まあスクレイピングされて良い思いするサイトなんてないですよね。もし、プログラムで情報にアクセスしたいならそのサービスにAPIがないか確認してみるといいです。

Pythonで画像処理

次は画像処理をやってみます。画像処理のプログラムを書く前にopencvという画像処理を扱うのに便利なライブラリを入れておきます。

$ brew install opencv
$ pip install opencv-python
$ python3
>>> import cv2
// 何も表示されなければOK

    画像から顔を検出して四角で囲うようなプログラムを書いてみましょう。

    import cv2
     
    face_cascade = cv2.CascadeClassifier('/Users/〇〇/Desktop/haarcascade_frontalface_default.xml') 
    src = cv2.imread('/Users/〇〇/Downloads/girl.jpg')
    img_gray = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(img_gray)
     
    print(faces)
    for (x, y, w, h) in faces:
        cv2.rectangle(src, (x, y), (x + w, y+h), (0, 0, 200), 3)
    
    cv2.imwrite("/Users/〇〇/Desktop/output.png", src)
    

    実行するとこんな感じで人物の顔の部分を四角で囲ってくれます。顔を識別してくれるファイルがあるおかげですね。

    分類器はOpenCVにあらかじめ用意されているから、自分が使いたいものを使うといいでしょう。モザイク処理してみるとこんな感じ。

    import cv2
     
    face_cascade = cv2.CascadeClassifier('/Users/〇〇/Desktop/haarcascade_frontalface_default.xml') 
    src = cv2.imread('/Users/〇〇/Downloads/girl.jpg')
    img_gray = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(img_gray)
     
    for (x, y, w, h) in faces:
        # cv2.rectangle(src, (x, y), (x + w, y+h), (0, 0, 200), 3)
        small = cv2.resize(src[y:y+h, x:x+w], None, fx=0.08, fy=0.08, interpolation=cv2.INTER_NEAREST)
        src[y:y+h, x:x+w] = cv2.resize(small, (w, h), interpolation=cv2.INTER_NEAREST)
    
    cv2.imwrite("/Users/〇〇/Desktop/output.png", src)
    

    実行してみると顔の部分にモザイクがかかっていますね。モザイクの大きさも数値をちょっと変えてあげれば簡単に変える事ができるのは楽。

    動画に出ている人物の顔を認証してモザイクをかけるなんてこともできそう。ちょっとコードは多くなるかもしれないけど、やってみるのもありですね。画像関係はOpenCVやpollowっていうライブラリなんかを使ってみると楽だったりするからよかったら使ってみるといいでしょう。

    PythonでExcel自動化

    Pythonを使ってExcelの作業を自動化するようなこともできる。

    毎回Excelをカタカタ叩いて入力しているなら、プログラムを一度書いてしまえばその作業時間を相当短縮する事ができそうです。仕事でExcelを使う時間がほとんどっていう人もいると思うから、プログラムの力を使えばかなり楽になるかもしれません。自分はExcel使わないけど、使う方は試してみるといいかもですね。

    まとめ

    Pythonを学んでちょっとしたらできることってなんだろう?って思ってちょっとPythonでできることを紹介したけど、結構便利な事ができそうですよね。画像処理なんかは割と日常的に使えるかもしれません。

    それと、Pythonで書いたけど別にPythonだからできるとかそんなことはなくてPythonじゃなくてもPHPやRuby、JavaScriptなんかでできることも多いです。個人的には人工知能開発関連以外は他の言語でもいいんじゃないかなーって思います。作業を自動化したり楽にするのが目的ならPythonにそこまでこだわる必要もそこまでないかなーって感じです。

    ちなみに自動化なんかをしたいならコードを書かなくてもiPhoneのショートカットやIFTTT、MacのAutomatorなんかを使えば結構いけます。

    GoogleAppsScriptを使ってあれこれやるのもいいですね。好きなものを使って作業を効率化しちゃってください。

    Twitterでフォローしよう

    おすすめの記事