1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/xuxueli0323-xxl-crawler

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

XXL-CRAWLER

XXL-CRAWLER — это легковесный фреймворк для веб-скрапинга.
— Стартовая страница —

Введение

XXL-CRAWLER — это легковесный фреймворк для веб-скрапинга. Одной строкой кода можно создать многопоточный скрапер, используя аннотации для сбора данных с веб-страниц и преобразования их в Java-объекты. Фреймворк поддерживает многопоточность, аннотации, рендеринг JavaScript, использование прокси, распределенные расширения и другие функции.## Документация

  • Документация на русском## Функции
    1. Простота: API интуитивно понятен и прост, что позволяет быстро начать работу;
    1. Легковесность: базовая реализация зависит только от jsoup, что делает её легкой и эффективной;
    1. Модульность: модульная структура позволяет легко расширять функциональность;
    1. Полное аннотирование: поддержка извлечения данных страницы с помощью аннотаций, что позволяет эффективно отображать данные страницы в объект PageVO, а также автоматически извлекать и упаковывать данные объекта PageVO. Одна страница может извлекать один или несколько объектов PageVO;
    1. Многопоточность: выполнение с использованием пула потоков, что повышает эффективность сбора данных;
    1. Распространение по всему сайту: поддержка расширения сбора данных с текущего URL;
    1. JS рендеринг: поддержка сбора данных, динамически рендеримых JavaScript, с помощью расширения модуля "PageLoader". Нативная поддержка Jsoup (не рендерит JavaScript, быстрее), Selenium+ChromeDriver (рендерит JavaScript, высокая совместимость) и других реализаций, а также возможность расширения других реализаций;
    1. Прокси IP: противодействие стратегиям защиты от сбора данных (WAF);
    1. Динамическое использование прокси: поддержка динамического изменения пула прокси во время выполнения, а также настройки пользовательских стратегий маршрутизации прокси;- 10. Повторная попытка при неудаче: повторная попытка при неудачном запросе, а также возможность настройки количества повторных попыток;
    1. Асинхронность: поддержка выполнения как синхронно, так и асинхронно;
    1. Идемпотентность и удаление дубликатов: предотвращение повторного сбора данных;
    1. Фильтрация URL: поддержка настройки белого списка URL с помощью регулярных выражений;
    1. Поддержка распределенной системы: поддержка распределенной системы с использованием расширения модуля "RunUrlPool" и совместного использования данных выполнения с помощью Redis или DB. По умолчанию предоставляется версия для одного компьютера LocalRunUrlPool;
    1. Настройка информации запроса, включая параметры запроса, Cookie, Header, циклическое использование UserAgent, Referrer и т. д.;
  • OnClickListener 16. Динамическое изменение параметров запроса: поддержка динамического изменения параметров запроса во время выполнения;
    1. Управление таймаутом: поддержка настройки таймаута запроса для сбора данных;
    1. Активное ожидание: активное ожидание после обработки страницы, чтобы избежать частого блокирования. ## Пример кода

Внимание: Используйте только для учебных и тестовых целей. Если нарушили права, свяжитесь с нами для удаления.Вот тестовый код, который можно просмотреть в репозитории: каталог тестового кода| № | Название паука | Описание функциональности | Файл тестового кода | |----|-----------------------------|-------------------------------------------------------------------------------------|------------------| | 1 | Паук данных высокорейтинговых проектов Gitee [извлечение данных с страницы] | Одной строкой запускается многопоточный паук, который расширяет поиск по страницам "списка проектов Gitee", автоматически извлекает данные с страницы с помощью "аннотаций" и упаковывает их в PageVo для вывода; | XxlCrawlerTest01 | | 2 | Паук скачивания страниц Gitee [скачивание страниц] | Скачивает "список проектов Gitee", получает исходные данные страницы html и генерирует локальный html файл; | XxlCrawlerTest02 | | 3 | Паук скачивания изображений с NetEase [скачивание изображений] | Скачивает изображения новостей с сайта NetEase и загружает их локально; | XxlCrawlerTest03 | | 4 | Паук новостей Baidu [извлечение данных с API] | Скачивает данные с не-Web страницы, в данном случае это JSON API, выводит данные ответа напрямую; | XxlCrawlerTest04 | | 5 | Паук цен на товары электронной коммерции [рендеринг JS; интеграция Selenium] | Паук получает цены на товары электронной коммерции, так как цены рендерятся асинхронно; данное решение использует Selenium + ChromeDriver для рендера JS и имитации поведения браузера для сбора данных; | XxlCrawlerTest05 || 6 | Паук получения данных с использованием прокси [метод с использованием прокси] | Скачивает данные с целевой страницы с использованием прокси; позволяет преодолеть ограничения доступа и обеспечить безопасность данных; | XxlCrawlerTest06 | | 7 | Паук получения данных с использованием кластера [метод с использованием кластера Redis] | Скачивает данные с целевой страницы с использованием кластерного метода; в кластере несколько XxlCrawler совместно используют RunUrlPool для расширения URL и выполнения задач сбора данных, что повышает производительность сбора данных; | XxlCrawlerTest07 |## Коммуникация - Общение с сообществом

Вклад

Вклады приветствуются! Откройте pull request для исправления ошибки или создайте Issue для обсуждения новой функции или изменения.

Добро пожаловать в проект! Например, вы можете отправить pull request для исправления ошибки или создать Issue для обсуждения новой функции или изменения.

Интеграция и регистрация

Если ваша компания хочет интегрироваться, пожалуйста, зарегистрируйтесь на адресе регистрации. Регистрация проводится только для продвижения продукта.

Авторские права и лицензия

Этот продукт является открытым исходным кодом и бесплатным, и будет продолжать предоставлять бесплатную техническую поддержку сообщества. Индивидуальные или корпоративные пользователи могут свободно использовать его.

  • Лицензировано по лицензии Apache, версия 2.0.
  • Авторские права (c) 2015-н.в., xuxueli.

Пожертвования

Независимо от суммы, она достаточно выражает ваше мнение, большое спасибо :) Перейти к пожертвованию

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Распределённая структура для краулеров. Разработка распределённого краулера с помощью одной строки кода. Поддерживает такие функции, как многопоточность, асинхронность, динамические IP-прокси, распределение и рендеринг JS. Развернуть Свернуть
Java
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/xuxueli0323-xxl-crawler.git
git@api.gitlife.ru:oschina-mirror/xuxueli0323-xxl-crawler.git
oschina-mirror
xuxueli0323-xxl-crawler
xuxueli0323-xxl-crawler
master