Pythonで毎日圧倒的に効率化している業務自動化術5選 【非エンジニアでもできます】

Python

Pythonで毎日の業務が自動化できたら、非常に便利ですよね。でも、

  • どんなことが自動化できるんだろうかイメージがわかない
  • わいたとしても実装するまでのイメージがなかなかわかない

という方がほとんどかと思います。そこで、今回は僕がPythonで毎日圧倒的に効率化している業務自動化について、事例を交えながら解説したいと思います。

Pythonって難しそう

ほとんどの方は、この記事を読んでいるときにプログラミング経験がないと思うので、

  • Pythonって難しそう

とおもわれているかたも多いのではないでしょうか。

 

でも安心してください。Pythonの設計思想では、プログラマーではない人でもコードが書けるように、ほかのプログラミング言語よりも圧倒的にシンプルに書かれています。

なので、もしこの記事を読んでよさそうであれば、ぜひ学習を進めてみてくださいね。

 

僕がPythonで毎日圧倒的に効率化させている業務自動化の例

ではでは、さっそく僕がPythonで業務自動化しているものの例をご紹介します。

①Web上でバズった記事のデータを10万件自動ダウンロードしてデータ分析

僕自身がライターなので、

  • どういう記事のタイトルだったらバズるんだろう

ってよく考えるですよね。例えば「Python」について書くとしたら、どんな記事がバズるんだろうっていうときに、Pythonを使って過去にバズった記事のURL、タイトルを15年分抽出して、それをデータ分析するようなことも可能です。しかも、こんな数行のコードで。



from selenium import webdriver  
from pandas import * 
import time

#Access to page

browser = webdriver.PhantomJS()  # DO NOT FORGET to set path
url = "http://b.hatena.ne.jp/search/text?safe=on&q=Python&users=50"
browser.get(url)
df = pandas.read_csv('trend.csv', index_col=0)
#Insert title,date,bookmarks into CSV file

page = 1 #This number shows the number of current page later

while True: #continue until getting the last page
    if len(browser.find_elements_by_css_selector(".pager-next")) > 0:
        print("######################page: {} ########################".format(page))
        print("Starting to get posts...")
        #get all posts in a page
        posts = browser.find_elements_by_css_selector(".search-result")
        
        for post in posts:
            title = post.find_element_by_css_selector("h3").text
            date = post.find_element_by_css_selector(".created").text
            bookmarks = post.find_element_by_css_selector(".users span").text
            se = pandas.Series([title, date, bookmarks],['title','date','bookmarks'])
            df = df.append(se, ignore_index=True)
            print(df)

        #after getting all posts in a page, click pager next and then get next all posts again
        
        btn = browser.find_element_by_css_selector("a.pager-next").get_attribute("href")
        print("next url:{}".format(btn))
        browser.get(btn)
        page+=1
        browser.implicitly_wait(10)
        print("Moving to next page......")
        time.sleep(10)
    else: #if no pager exist, stop.
        print("no pager exist anymore")
        break
df.to_csv("trend1.csv")
print("DONE")

こんな感じでデータが自動収集されるスクリプトが起動されて

その結果をCSVにダウンロードして

これらのデータを、Pythonで分析できるJupyter Notebookを使って、毎年どんなキーワードが入っているタイトルがバズりやすいのか調べればいいわけです。こんな感じで、2017年度の日付を、ブックマーク数ごとに並び替えてあげれば。。。


year2017 = df[df["date"].str.contains("2017/", na=False)]
year2017.sort_values(by=["bookmarks"], ascending=False)

こんな感じで、過去数万件のタイトルから、2017年のタイトルだけ取得できます。


実際にこんな感じでデータ分析した結果、

  • どの年度でも、初心者向けの記事がはやりやすい
  • 「まとめ」ははやりやすい
  • 2015年度以降は、自動化・スクレイピング・データ分析などのデータサイエンスよりのキーワードがはやっている

ということがわかり、このキーワードを使って【Python】スクレイピング→データ収集→整形→分析までの流れを初心者向けにまとめておく ~Pythonに関するはてな記事を10年分スクレイピングし、Pythonトレンド分析を実際にやってみた~ というタイトルでQiitaに書いてみたところ

みごとに186 Contirubutionsを獲得したり。

このように、面倒5時間かかるリサーチも、たった5分でデータ収集できてしまうのが、Pythonの大きなメリットです。

» 関連 Python初心者向けのチュートリアルまとめ

②他社のECサイトの在庫データを毎日Botで自動確認し、足りない場合はリストでメールで通知

例えば、海外のECサイトから毎日在庫情報を確認して、輸入して販売しているみたいな場合にも、Pythonは使えます。毎日在庫情報を確認するBotを作って、在庫がなければメール通知して足りないものを通知するようなBotを作成することができます。

ほかにも例えば、チケットを譲ってくれる人を見つけられるサイトがあるそうで、自分の見たいタイトルの舞台の名前を入れると、そのチケットを渡してくれる人を探すことができるそうなのですが、毎日検索して確認するのが面倒だそうなので、これを毎日プログラムが取得して、まとめたデータをSlackに通知してくれるようなプログラムを書いたりすることができます。

 

③SEO対策で必要なキーワードを自動でマイニング

ほかにも、例えばSEO対策をしているコンテンツマーケターにもPythonは役に立ちます。例えば、キーワードの並び順によってキーワードボリュームが違ったり、競合性が変わったりしますよね。そういうキーワードを手入力で全部調べていくのは非常に手間です。

 

そういったときに、Pythonを利用してキーワードを自動で入れ替え、検索ボリュームを自動でAPIを利用して取得し、それをCSVにエクスポートすることも、ワンクリックで可能になります。

④Googleの検索結果から、検索順位とそのページのアフィリエイトタグを埋め込み、アフィリエイターの競合分析

個人のアフィリエイターでもPythonで自動化ができます。例えば、ある特定のキーワードでGoogle検索の結果、存在するアフィリエイトコードを自動で抜き出して、そのコードからどういう商品が売れるのかを予測したりすることができます。これを自分の力で一つ一つやっていたら相当時間がかかりますが、秒速で終わらせることができます。

⑤会社の打刻忘れを防止するためにブラウザ自動操作で打刻

これは実際に僕がやったわけではありませんが、毎日会社で打刻するのが面倒くさくて、Pythonでパソコンを起動した瞬間に打刻を自動化するプログラムを組んでいる人がいました。

 

どうやったらPythonの自動化を学ぶことができるのか

Pythonで自動化を学ぶには、以下の理解が必要です。

  1. Pythonの基礎
  2. Pythonを利用したWebスクレイピング
  3. Pythonを利用したデータ処理
  4. Pythonを利用したWeb APIの処理
  5. Pythonを利用した定期実行プラグラム(Cron)等の処理

です。

これらのスキルを学ぶためには、こちらの記事をぜひ参考にしてみてくださいね!

» 関連 Python初心者向けのチュートリアルまとめ