02 мая 2022

Получение refresh_token для сайта pixiv.net через командную строку.

 
Когда-то давно я делал скрипт для загрузки изображений с сайта pixiv.net. Он с некоторыми ограничениям до сих пор работает. Сейчас авторизоваться на сайте автоматически не получается из-за изменений на самом сайте. Делать это нужно исключительно через браузер, но в интернете нашлись люди, которые и эту процедуру частично автоматизировали.

Для повторения подобного понадобится следующее:
Интерпретатор я установил по пути "C:\Pyhton310" и во время установки выбрал, чтобы он добавил себя в PATH. Это нужно, чтобы не прописывать полный путь далее.

Далее необходимо установить последнюю версию браузера Google Chrome. С этим проблем обычно не возникает.

Теперь надо посмотреть точную версию браузера. Она понадобится позднее.

 
Далее необходимо загрузить правильную версию программы ChromeDriver. Для этого надо перейти по указанной выше ссылке и скачать архив с именем "chromedriver_win32.zip". Если же открылся каталог не с той версией браузера, которая установлена в системе, то надо перейти по ссылке https://chromedriver.storage.googleapis.com/index.html и выбрать нужную версию. Если версии совпадать не будут, то ничего не получится.

Полученный архив можно распаковать в каталог с установленным интерпретатором, в каталог профиля или в любой другой каталог, который прописан в переменной окружения "PATH".

Теперь надо поставить программу на языке Python, которая и будет делать всю магию. Для этого надо выполнить следующую команду:
pip install gppt
Будет установлена программа get-pixivpy-token. Если никаких ошибок не возникло, то можно переходить к следующему шагу.

В окне командной строки надо ввести следующую команду:
gppt login
Если всё сделано правильно, то откроется окно браузера с формой для ввода логина и пароля от сайта с указанием, что браузер управляется сторонним ПО:
 
 
В этой форме нужно ввести свой логин и пароль. После отправки формы окно браузера автоматически закроется, а в командной строке появится значение искомого токена, которое уже можно будет использовать в скриптах.
[!]: Chrome browser will be launched. Please login.

DevTools listening on ws://127.0.0.1:57786/devtools/browser/****

[+]: Success!
access_token: ****
refresh_token: ****
expires_in: 3600

-->