うまい飯食いたい

うまい飯食えるようにガンバリマス

仕様変更したpixiv公式APIを扱う

以前、非公式のpixivAPIが使えなくなったと言いましたが、
理由としては春に公式APIの仕様変更があったためらしいです

この辺を参照に
PHP - pixivのAPIにアクセスする - Qiita

また、よく探してみると、APIラッパーがあったので使ってみることに
upbit/pixivpy · GitHub

from pixivpy3 import PixivAPI

def search_pixiv(word)
    api = PixivAPI()
    api.login('username', 'password')

    PER_PAGE = 500
    
    i = 1
    while 1:
        results = api.search_works(word, page=i, per_page=PER_PAGE, mode='tag')
        
        for illust in results.response:
            print illust['title']

        p = results.pagination
      
        if p['next']:
            i = p['next']
            time.sleep(1.5)
        else:
            break

大体こんな感じ 待機時間は適当です
ただ、検索によってアクセスできるのは、検索上位20000件までなので、
その辺はうまくやる必要があります

ヒット数が40000件までなら、ソートオプションで降順・昇順の両方で検索すれば扱えます
しかし、例えば「艦これ」だと30万件ほどありますので、
艦これ AND (艦娘名)」を検索ワードとして今のところやっています

前回は、データ数が40000件程度しかなかったのですが、今度はより詳細な解析ができそうで楽しみです