アクセスアップ!人気記事をCSVにまとめて分析

f:id:tamurasann:20190517000852j:plain

 

プログラミング初心者がpythonを使って人気記事をCSVにはきだすプログラムを作ってみました。

 

全体コード


from selenium import webdriver
from selenium.webdriver.support.ui import Select
import pandas as pd

#各種環境設定

 

word = input("検索したいキーワードを入力してください:")
count = input("ブックマーク数(1,3,50,100,500)を入力してください:")

#検索したいキーワードとブックマーク数を受け付ける


browser = webdriver.Chrome("C:/Users/user/Desktop/Selenium/chromedriver.exe")
df_main = pd.DataFrame(columns=['タイトル','ブックマーク数'])

#Seleniumの設定とデータフレームの作成(列項目名の設定)

 

for num in range(1,100):
res = browser.get("http://b.hatena.ne.jp/search/text?q="+word+"&users="+str(count)+"&page="+str(num))

#複数ページの設定


item_boxlist = browser.find_elements_by_css_selector(".bookmark-item")
if len(item_boxlist) ==0:
break

#記事が0になったら終了


for item_box in item_boxlist:
title = item_box.find_element_by_class_name("centerarticle-entry-title").text
bookmarks = item_box.find_element_by_class_name("centerarticle-users").text

#タイトルとブックマーク数の取得


blog_data = pd.Series( [ title,bookmarks, ], index=df_main.columns )
df_main = df_main.append( blog_data, ignore_index=True )
df_main.to_csv("blogdata.csv", encoding="utf_8_sig")
print("終了")

#CSVにするためのデータを整理して、CSVへ書きだして終了

f:id:tamurasann:20190517002728p:plain

結果

 

youtu.be

 

自分のブログテーマを検索して、人気記事の共通点を見つけて、自分のブログに活かすことによって、アクセス数アップにもつながると思います。

参考記事

 

ブラウザを操作するために使ったSeleniumは以下の記事を参照いただくとほぼ、すべてのことが理解できると思います。

【超便利】PythonとSeleniumでブラウザを自動操作する方法まとめ | たぬハック

 

pandasについては絶賛勉強中ですが、最初は以下のことを覚えておけば十分じゃないかなぁと。

■データフレームの作成

df_main という変数に1列目の項目がタイトル、2列目の項目がブックマーク数のデータフレームを作成する
df_main = pd.DataFrame(columns=['タイトル','ブックマーク数'])

■データの整理

変数 = pd.Series([データが入っている変数を入れ込む], index = 目次名)
blog_data = pd.Series( [ title,bookmarks, ], index=df_main.columns )

■整理したデータをデータフレームに入れ込む
df_main = df.main,append( blog_data, ignore_index=True)

■CSVへ書き出す
df_main.to_csv("blogdata.csc", encoding="utf_8_sig")

 

akiyokoさんのブログにわかりやすく書いていました。でも難しい・・・

akiyoko.hatenablog.jp

 

Seleniumで使う要素の特定はGoogleChromeの検証を使ってます。

以下の記事で検証モードの使い方を書いています。

ferret-plus.com

 

終わりに

 個人的にプログラミングは英語と同じで長文を解読して、単語を調べて、実際に書いたり読んだりして勉強するのが効率的なのかなと思っています。