AnyCrawl - это такой бодрый "швейцарский нож" для парсинга :)
Он умеет вытаскивать страницы поштучно, обходить целые сайты и при этом не умирать даже на больших объемах. Есть поддержка Google и других поисковиков, можно включить многопоточность и запускать задачи пачками. Плюс встроен ИИ для извлечения структурированных данных в JSON прямо со страниц.
Код открыт, лицензия MIT, технологии знакомые: Node.js, TypeScript, Redis. У проекта уже 1900 звезд на GitHub, 166 форков и 17 наблюдателей - явно не одинокая разработка.
Разработчики активно обновляют документацию и Docker-конфиги, добавляют поддержку прокси и движков для рендеринга JavaScript вроде Playwright и Puppeteer.
Отлична идея, замечу. Мы что-то подобное делаем, но медленно...
Русский ИТ бизнес
Русский ИТ бизнес 👨
Подписаться
Комментарии (0)
Чем решение AnyCrawl лучше?
1. Первый заход всегда на robots.txt
2. Преобразуем правила в регулярки для обработки url, вынимаем правила в зависимости от поисковых систем, получаем все clean-param, sitemaps
3. Получаем морду сайта и все внутренние страницы
4. Определяем тип ссылки: internal, external, anchor, disallowed, allowed
5. Кладем в базу в соответствии с типом
В противном случае, если не чистить clean-param, UTM, не делать универсальный хэш для url (например со слешом и без на конце - считать за один url), не присваивать хаш урла по canonical, и пр. то вся эта индексация захлебывается, когда попадает на простые фильтры интернет-магазинов
если не чистить clean-param, UTM (а теперь ещё и erid для ru), не делать универсальный хэш для url (например со слешом и без на конце - считать за один url), не присваивать хэш урла по canonical
и не сортировать оставшиеся параметры по алфавиту ...
1. Отсечение schema (одинаковый url с http и https будет иметь один hash)
2. www/без www в зависимости от опции мягкости соблюдения хоста
3. Убираются / , ? или # на конце url
4. Убираются clean-param
5. Строятся оставшиеся GET параметры по алфавиту
6. Из полученной конструкции формируется murmur3_hash и он уже используется как уникальный _id
Яндекс указывает две AS и типа ищите ip сами, но не гарантируем.
В общем некоторые не заморачиваются списками ip и перепроверкой PTR