reactor-crw v0.1.0 / парсер :: reactor-crw

reactor-crw парсер 

reactor-crw v0.1.0

Добрейший вечерочек. Новая версия reactor-crw и в ней уже используется graphql API реактора. Тот самый, на который, с недавних пор, переехала мобильная версия сайта. Ссылка на API.

Выглядит это следующим образом:

reactor-crw,парсер

На данный момент reactor-crw поддерживает два парсера, HTML и 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.


Подробнее

reactor-crw,парсер
Развернуть
прикольная штука, только у меня так и не получилось настроить сохранение куда надо, указав путь
krako krako 13.11.202107:41 ответить ссылка 0.0
Ошибка или просто игнорирует флаг -d и сохраняет в дефолтную директорию?
хз) сейчас с новой версией попробовал ещё раз и получилось, спасибо.
krako krako 13.11.202113:16 ответить ссылка 0.0
я всё равно дождусь виндовую окошковую версию...
Уже
Под эту версию ещё не вышел. Для прошлых версий есть, но репозиторий сейчас скрыт.
Не могу запустить его в Mac OS X, подскажите, как правильно это сделать.
Boojin Boojin 13.11.202112:02 ответить ссылка 0.0
1) chmod +x reactor-crw_0.1.0_macOS_64bit
2) запускаем ./reactor-crw_0.1.0_macOS_64bit --help
3) получаем сообщение что эту неизвестно кем сделанную срань мы запускать не будем
4) открываем настройки безопасности и все же разрешаем выполнение этого бинарника
Mac osx 10.8.5
Безопасность из любого источника.
Делаю, как вы написали. И вот что на выходе.
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$
Boojin Boojin 13.11.202119:51 ответить ссылка 0.0
Понял. Это мистер xcode sdk выебывается. Краулер тут ни при чем. Запустите в терминале
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
Делаю так в Mac osx, через терминал:
cd /reactor-crw
sudo reactor-crw api - t "Photo Art" - d "." - w 2
И получаю command not found, пробовал и без sudo.
Что я делаю не так?
Boojin Boojin 13.11.202112:35 ответить ссылка 0.0
Там нужен относительный путь:
sudo ./reactor-crw api - t "Photo Art" - d "." - w 2
Kali Kali 13.11.202113:36 ответить ссылка 0.0
Спасибо за ответ.
Но все равно получаю "command not found".
Boojin Boojin 13.11.202113:48 ответить ссылка 0.0
Правильно ли я понимаю, что ты получаешь id постов по api, а потом парсишь html?
Kali Kali 13.11.202113:26 ответить ссылка 0.0
Нет. Все полностью через api. Просто чуть больше манипуляций с данными.
Так а как ты прямую ссылку на изображение получаешь? В api вроде нет такого функционала, только узнать id картинки можно.
Kali Kali 14.11.202101:03 ответить ссылка 0.0
https://github.com/reactor-joy/reactor-crw/blob/0a6c5d89f1a9b2a33ff1c66105f414591bb3e051/crawler/api/crawler.go#L127
Вот основная функция для формирования линки. Зависит от тегов, хоста, размера изображения, и nsfw ли это.
Кстати, посоветуйте что бы такого почитать начального уровня по созданию лексеров - парсеров?
Что бы так сказать вкатится в тему. Д. Ульмана же, читать мне умственные способности не позволяют.
Warzenka Warzenka 13.11.202118:26 ответить ссылка 0.0
Это, а что, возможность скачивать единичную страницу исчезла?
Wave Wave 21.01.202200:21 ответить ссылка 0.0
К слову, попытка скачать одну страницу версией 0.0.3 тоже провалилась.
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? В общем, как-то не получается у меня составить команду для одной страницы, при том что два тега на пробу я легко скачал безо всяких проблем.
Wave Wave 21.01.202200:47 ответить ссылка 0.0
Так, опытным путём выяснил, что если хотеть скачать одну страницу, надо указать
html -o -p "ссылка"
Это необходимый минимум. Как-то чуть-чуть неочевидно из описания, не говоря уже о том, что в примере в ридми на гитхабе не хватает -o
Плюс мой косяк, я с самого начала пытался скачать nsfw-страницу (просто не хотелось 29 фоток вручную сохранять). До этого вполне успешно скачал nsfw-тег, вот и лопухнулся.
Wave Wave 21.01.202201:05 ответить ссылка 0.0
Если -c "кука" поставить после -d "папка", то пишет, что cannot process provided destination. Причём, невзирая на кавычки.
Wave Wave 21.01.202201:16 ответить ссылка 0.0
Фух! Алилуйя!
reactor-crw.exe html -c "кука" -o -p "http://joyreactor.cc/post/5065034" -d "D:\Download\Joyreactor"
Wave Wave 21.01.202201:20 ответить ссылка 0.3
Рад, что разрулилось. Проверил на версии 0.2.0:
# .\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 в хелпе и добавлю пример. Спасибо.
Оказалось, проблема не в том, что куки после -d, а в том, что D:\Download\Joyreactor\ и "D:\Download\Joyreactor" работают, а "D:\Download\Joyreactor\" не работает.
-o действительно оказался необязательным параметром, хотя я так не очень разобрал границы применимости, в каких случаях без него не обойтись, а в каких он не нужен. И зачем в таком случае вообще нужен.
html -o -c -p -d работает
html -c -p -d работает
без параметра html или с api не работает (речь об одной странице)
Как-то так.

Вопрос: почему всё описание на английском и максимально формально, если заточено для русскоязычного сайта?
Вопрос: почему страницу нельзя скачать через api? Я встречал страницы, которые можно посмотреть только через апи, и там десятки фотографий. Ну, в смысле, в браузере, даже будучи залогиненным, их не посмотреть. Насколько понимаю, этой программой их скачать невозможно. Разве что скачивать весь тег.
Wave Wave 21.01.202222:23 ответить ссылка 0.0
Проверил, да, заблоченные посты как единичную страницу скачать нельзя.
Wave Wave 21.01.202222:40 ответить ссылка 0.0
"почему всё описание на английском и максимально формально, если заточено для русскоязычного сайта?"
Такой уж стандарт. Как видишь, все ровно стараюсь отвечать и здесь. Если нашел баг или есть предложения, то issue можно и на русском писать.

"почему страницу нельзя скачать через api?"
Еще не сделал. Пока что только тег.

"И зачем в таком случае вообще нужен.html -o -c -p -d работает html -c -p -d работает"
-o нужно обязательно указать есть нужно скачать одну страницу и при этом на этой странице есть пагинация. В посте, как ты понимаешь, никакой пагинации нет. Потому и не обязательно.

Что бы лучше понимать что можно через html команду, а что через api, перечитай хелпы по обем командам:
./reactor-crw.exe html --help
./reactor-crw.exe api --help

что-то общее, что-то нет.

Если есть вопросы - пиши, стараюсь отвечать всем.
-o нужно обязательно указать есть нужно скачать одну страницу и при этом на этой странице есть пагинация. В посте, как ты понимаешь, никакой пагинации нет. Потому и не обязательно.

А, дошло.
Wave Wave 22.01.202202:04 ответить ссылка 0.0
привет. а где брать куки?
krako krako 10.02.202212:53 ответить ссылка 0.0
В мобильной версии сайта. Нужное значение кук можно увидеть например в консоли браузера (f12 для включения). Загрузите страницу с включенной консолью и во вкладке сеть одним из запросов будет joyreactor.cc. Кликнув по этому полю, будут показаны параметры запроса/ответа. Вкладка "заголовки", "заголовки запроса".
UU UUMIUo
15 000 грн.
Тип автомобиля: С пробегом Условия продажи: Простая продажа

Растаможена: Да
Модель: 9
Я ВАТНИК
Г л •• л« •«» «MJ«* 1007
770 000
:
» /WQRLEJV s»
IN
PHOTO
WORLD IN PHOTO
развернуть j
CŸ? О Инспектор		□ Консоль О Отладчик Сеть {} Стили О Профайлер		О Память §
привет. а почему может не качать некоторые тэги? например katsushika pachi или Jay-Marvel. пишет что не найдено ничего
krako krako 12.04.202214:40 ответить ссылка 0.0
то есть 2022/04/12 18:41:37 failed on fetching links: cannot retrieve tag posts: input:1
0: blog.postPager.posts Internal server error
krako krako 12.04.202214:42 ответить ссылка 0.0
На гитхабе потерли парсер?
Только зарегистрированные и активированные пользователи могут добавлять комментарии.
Похожие темы

Похожие посты
(§) reactor_crwUI
□
X
Путь к r-crw		Сохранить конфиг
Папка загрузки		Загрузить конфиг
Адрес страницы
Строка Cookies Q
Тип контента: Q Изображение Q gif D webm Q mp4 Загружать только одну страницу Q Приоритет загрузки: 1
подробнее»

reactor-crw парсер gui

(§) reactor_crwUI □ X Путь к r-crw Сохранить конфиг Папка загрузки Загрузить конфиг Адрес страницы Строка Cookies Q Тип контента: Q Изображение Q gif D webm Q mp4 Загружать только одну страницу Q Приоритет загрузки: 1
Привет! ш reactor_crwUI
□
X
Путь к r-crw
Папка загрузки
Адрес страницы
Запуск
Строка Cookies Q
Тип контента: Q Изображение Q gif D webm Q mp4 Загружать только одну страницу Q Приоритет загрузки: 1
подробнее»

reactor-crw парсер gui

ш reactor_crwUI □ X Путь к r-crw Папка загрузки Адрес страницы Запуск Строка Cookies Q Тип контента: Q Изображение Q gif D webm Q mp4 Загружать только одну страницу Q Приоритет загрузки: 1