🌱
えっちなサイトを作る(22)
引き続きえっちなゲームがプレイできちゃうサイトを作ろうと頑張ります。
色々調査などやりました🧐
pixivpyのOAuth対応について調査
pixivから画像を取得し、機械学習のDatasetを作成する際の補助として利用するpixivpyがあります。
今年初頭にpixivpyのpassword認証方式が使えなくなったようです。
pixivがOAuth対応したためaccessTokenの取得が必要になったようです。
代替手段は2つあるようです。
- Chrome Developer Consoleでaccess Tokenを見る方法
- Seleniumでaccess Tokenを見る方法
後者のSelenium方式でやってみます。
Seleniumを利用したpixivpyの動作確認
基本的には以下の記事を参考。
前提
- windows 10
- Chrome
- 設定->ChromeについてにChromeのバージョンが表示される
-
92.XXX.XXX
とか
- ChromeDriver
- https://chromedriver.chromium.org/downloads
- Chromeのversionと合わせたものをdownload
-
92.XXXX
なら92のやつ
-
- 解凍して
chromedriver.exe
を作業フォルダに置く
- powershell
- pyehon3
- windows storeよりインストール
- powershellで
python3 -V
でversion表示されたらOK
pythonのライブラリインストール
- selenium
pip install selenium
- pixivpy
pip install pixivpy
- requests
pip install requests
1.Seleniumの動作テスト
作業フォルダに以下のtest.py
とchromedriver.exe
を置く
python3 ./test.py
test.py
import time
from selenium import webdriver
driver = webdriver.Chrome('./chromedriver.exe')
driver.get('http://www.google.com/xhtml')
time.sleep(5)
print(driver.title)
search_box = driver.find_element_by_name('q')
search_box.send_keys('ChromeDriver')
search_box.submit()
time.sleep(5)
print(driver.title)
driver.save_screenshot('search_results.png')
driver.quit()
- print文によりpowershellにgoogleのページタイトルが表示されたらOK
- おまけとしてキャプチャした画像
search_results.png
が作成される。
- おまけとしてキャプチャした画像
2.リフレッシュトークンの取得
pixiv_auth.py
を以下から取得し、作業フォルダに配置。
python3 pixivpy login
- Chromeが立ち上がるので、ログイン
- powershellにaccess_tokenとrefresh_tokenが表示される
- refresh_tokenをメモしておく
-
expires_in: 3600
なので1時間利用しないとダメになるっぽい - その場合は
python pixiv_auth.py refresh OLD_REFRESH_TOKEN
-
3.pixivpyのテスト
以下のpixivpy-test.py
でpixivpyの動作テスト。
メモしたリフレッシュトークンを記入しておく。
pixivpy-test.py
# ランキングの3位までの画像をdownloadするサンプル
import time
from pixivpy3 import *
api = AppPixivAPI()
# aapi.login("ここにユーザ名","ここにパスワード") ## 使えなくなった
api.auth(refresh_token="ここにリフレッシュトークン")
json_result = api.illust_ranking()
for illust in json_result.illusts[:3]:
api.download(illust.image_urls.large)
time.sleep(1)
ランキング1位~3位の画像を取得できる。
うまくいった。
その他
- wsl2経由でwindows側のChromeをseleniumで操作できるらしいですが、ハマりたくないのでやりませんでした。
- データ収集処理はwsl2側でやるべきか?
- wsl2のネットワーク速度はwindowsでの速度とさほど変わらず
- アノテーションツール利用時にGUIが必要なのでwindows側で組むのが良い
- ファイルシステムをまたいだ参照すると、変更監視などが上手く行かないケースが有るのでGUI側のファイルシステムに合わせたほうがよさそう
終わりに
これで参考書籍のサンプルデータ収集ソフトを修正して、自分のデータセットが作れそうです。
次回無事にPartial Convolutionsの実装に入れたら良いなと思います。
Discussion