reactor-crw v0.1.0
Добрейший вечерочек. Новая версия reactor-crw и в ней уже используется graphql API реактора. Тот самый, на который, с недавних пор, переехала мобильная версия сайта. Ссылка на API.
Выглядит это следующим образом:
- ./reactor-crw html -p "http://joyreactor.cc/tag/Photo+art" - HTML версия
- ./reactor-crw api -t "Photo Art" - API версия
Ограничения
Внимательный читатель заметил, что этап получения ссылок происходит дольше самого скачивания файлов. Хотя по идее мы ничего не парсим а сразу получаем нужный результат. Так происходит потому что у реактора довольно жесткие лимиты по запросам на API. Собственно, у меня получилось заблочить себя даже в плейграунде.
Таким образом, каждый новый запрос на API происходит с таймаутом в 2 секунды.
Что позволяет API парсер
На данный момент, только пакетное выкачивание тегов. По умолчания API отдает абсолютно все, что связано с тегом, поэтому, была добавлена поддержка заблокированных тегов и подписок пользователя.
./reactor-crw api -t "Photo Art" -с "строка с куками"
Это уберет из результата все что у вас заблокировано. Но так же отфильтрует контент, на который нужно явно подписаться, что бы видеть. Куки нужно брать мобильной версии сайта.
Список всех флагов и их описание на странице github.
Изменения в версии 0.0.2
- Была добавлена поддержка socks5 и прокси (работает для HTML и API). Пример:
./reactor-crw api -t "tag name" --socks5 "socks5://127.0.0.1:9050"
- Значительно повысилась скорость обработки файлов. Теги, которые качались по 10-12 минут, сейчас тащатся за 2-3.
Скачать последнюю версию здесь. Если обнаружили ошибку или есть идея для нового функционала - создайте issue.
p.s. да, мы все знаем про Kelly.
2) запускаем ./reactor-crw_0.1.0_macOS_64bit --help
3) получаем сообщение что эту неизвестно кем сделанную срань мы запускать не будем
4) открываем настройки безопасности и все же разрешаем выполнение этого бинарника
Безопасность из любого источника.
Делаю, как вы написали. И вот что на выходе.
balthasar:~ boojin$ cd /reactor-crw_v0_1_0
balthasar:reactor-crw_v0_1_0 boojin$ chmod +x reactor-crw_0.1.0_macOS_64bit
balthasar:reactor-crw_v0_1_0 boojin$ sudo chmod +x reactor-crw_0.1.0_macOS_64bit
Password:
balthasar:reactor-crw_v0_1_0 boojin$ ./reactor-crw_0.1.0_macOS_64bit --help
dyld: Symbol not found: _clock_gettime
Referenced from: /reactor-crw_v0_1_0/./reactor-crw_0.1.0_macOS_64bit
Expected in: flat namespace
Trace/BPT trap: 5
balthasar:reactor-crw_v0_1_0 boojin$
xcode-select --install
Сурс:
https://stackoverflow.com/questions/39544703/getting-error-dyld-symbol-not-found-clock-gettime
https://github.com/Azure/azure-functions-core-tools/issues/571
cd /reactor-crw
sudo reactor-crw api - t "Photo Art" - d "." - w 2
И получаю command not found, пробовал и без sudo.
Что я делаю не так?
sudo ./reactor-crw api - t "Photo Art" - d "." - w 2
Но все равно получаю "command not found".
Вот основная функция для формирования линки. Зависит от тегов, хоста, размера изображения, и nsfw ли это.
Что бы так сказать вкатится в тему. Д. Ульмана же, читать мне умственные способности не позволяют.
reactor-crw.exe -o http://joyreactor.cc/post/5065034 -d D:\Download\Joyreactor
Так пишет: required flag(s) "path" not set
reactor-crw.exe -o -p http://joyreactor.cc/post/5065034 -d D:\Download\Joyreactor
А так: No links were found
Чего ему ещё надо, я так и не понял. Взял строку-пример из ридми с гитхаба:
reactor-crw.exe html -p "http://joyreactor.cc/post/5065034" -d "D:\Download\Joyreactor"
Синтаксическая ошибка в имени файла, имени папки или метке тома на обоих опробованных версиях — 0.0.3 и 0.2.0
К слову сказать, с гуем тоже непонятки. Что там такое есть атрибуты и почему по паре текстовых полей? Что им писать? В одно -p, в другое ссылку? -d и директорию? А как быть с html или api? -o? В общем, как-то не получается у меня составить команду для одной страницы, при том что два тега на пробу я легко скачал безо всяких проблем.
html -o -p "ссылка"
Это необходимый минимум. Как-то чуть-чуть неочевидно из описания, не говоря уже о том, что в примере в ридми на гитхабе не хватает -o
Плюс мой косяк, я с самого начала пытался скачать nsfw-страницу (просто не хотелось 29 фоток вручную сохранять). До этого вполне успешно скачал nsfw-тег, вот и лопухнулся.
reactor-crw.exe html -c "кука" -o -p "http://joyreactor.cc/post/5065034" -d "D:\Download\Joyreactor"
# .\reactor-crw_0.2.0_Windows_64bit.exe html -p "http://joyreactor.cc/post/5065034" -d "C:\Users\avpretty\Downloads" -c "куки" -w 2 - все ок. Куки после -d и даже флаг не -o не указывал.
Поправлю описание флага -o в хелпе и добавлю пример. Спасибо.
-o действительно оказался необязательным параметром, хотя я так не очень разобрал границы применимости, в каких случаях без него не обойтись, а в каких он не нужен. И зачем в таком случае вообще нужен.
html -o -c -p -d работает
html -c -p -d работает
без параметра html или с api не работает (речь об одной странице)
Как-то так.
Вопрос: почему всё описание на английском и максимально формально, если заточено для русскоязычного сайта?
Вопрос: почему страницу нельзя скачать через api? Я встречал страницы, которые можно посмотреть только через апи, и там десятки фотографий. Ну, в смысле, в браузере, даже будучи залогиненным, их не посмотреть. Насколько понимаю, этой программой их скачать невозможно. Разве что скачивать весь тег.
Такой уж стандарт. Как видишь, все ровно стараюсь отвечать и здесь. Если нашел баг или есть предложения, то issue можно и на русском писать.
"почему страницу нельзя скачать через api?"
Еще не сделал. Пока что только тег.
"И зачем в таком случае вообще нужен.html -o -c -p -d работает html -c -p -d работает"
-o нужно обязательно указать есть нужно скачать одну страницу и при этом на этой странице есть пагинация. В посте, как ты понимаешь, никакой пагинации нет. Потому и не обязательно.
Что бы лучше понимать что можно через html команду, а что через api, перечитай хелпы по обем командам:
./reactor-crw.exe html --help
./reactor-crw.exe api --help
что-то общее, что-то нет.
Если есть вопросы - пиши, стараюсь отвечать всем.
А, дошло.
0: blog.postPager.posts Internal server error