Dai(@never_be_a_pm)さんのTopTweetをpixiv用にカスタマイズ(python+pixivpy) その2

前回はDai(@never_be_a_pm)さんのTwitter分析Webアプリのチュートリアルをベースにpixiv対応を実施しました。

今回はユーザーではなくて、検索ワードから投稿数グラフや閲覧数などの情報分析が出来るように改変しました。

出来上がったWebアプリ

今回は下記を作成しました。

  • 上部に検索ワードに基づく投稿数の増加グラフ
  • 下部左側に検索ワードに基づく投稿数が多いユーザー
  • 下部右側に検索ワードに基づく投稿で閲覧数が多い投稿

今回は、操作している動画も作成してみました。「志熊理科」で検索した結果です。(検索してから表示まで1分ぐらい時間がかかっています。先に進めてください)

続いて改変箇所の説明です。

Pixiv対応への改変箇所

pixivpyの読み込み(前回と同じ)

from pixivpy3 import *

 TwitterのログインをPixivのログインに変更(前回と同じ)

# ログイン処理
api = PixivAPI()
pixiv_id = CONFIG["pixiv_id"]
password = CONFIG["password"]
api.login(pixiv_id, password)

 検索ワードから投稿情報を取得

#検索ワードから投稿情報を取得
          json_result = api.search_works(search_word, page=i, mode='exact_tag')
#各々の投稿情報に対して処理を実施
   for resp in json_result.response: 
#画像データをダウンロード
      api.download(resp.image_urls.px_128x128,"./static/picture/")
#画像データのパスを変更
          dst=re.sub(r'.*\/', './static/picture/', resp.image_urls.px_128x128) 
#投稿データの各々の情報を参照する
          resp.title,#タイトル
          resp.created_time,#投稿日時
          resp.stats.favorited_count.public,#BookMark数
          resp.stats.views_count #閲覧回数
          1, # Num
          0, # Sum
          resp.user.id,#投稿者のID
          resp.user.name,#投稿者の名前

投稿データを遷移グラフ用に処理(関数の追加)

def get_sum_df(images_df):
   #投稿データを日付でリサンプリングを実施して補完
   images_df = images_df.set_index("created_at")
   images_df = images_df.resample('D').min()
   images_df = images_df.fillna(0)
   sum_df = images_df

   #投稿データの遷移を積算するために合算
   sum = 0
   i=0
   for cn,row in sum_df.iterrows():
      sum = sum + row["num"]
      sum_df.iat[i,5]=sum
      i=i+1
   return sum_df

投稿データを各投稿者ごとに合算してソートの実施(関数の追加)

def get_user_df(images_df):
   user_df = images_df.groupby("user_name").sum().sort_values(by="num", ascending=False)
   print(user_df)

大分色々な箇所をいじれるようになり楽しくなってきました。2900円の元はとれたかなと思います。

コメント