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

OSCHINA-MIRROR/zhiyubujian-wind-bell

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

Ветер-колокольчик

Введение

Ветер-колокольчик — это лёгкий инструмент для сканирования, быстрый и чувствительный, как ветер-колокольчик, ловкий, как паук. Он может улавливать малейшие движения ветра и травы, легко собирая контент из интернета. Это паукообразный инструмент, дружественный к целевому серверу, который включает в себя более 20 обычных или необычных идентификаторов браузера, автоматически обрабатывает файлы cookie и информацию об источнике веб-страницы, легко обходит ограничения сервера, интеллектуально регулирует интервал времени между запросами и частоту запросов, чтобы предотвратить вмешательство в работу целевого сервера. Кроме того, Ветер-колокольчик также является очень дружелюбным инструментом для обычных пользователей. Он предоставляет множество экстракторов ссылок и экстракторов контента, позволяя пользователям свободно настраивать их по своему усмотрению. Даже если вы предоставите только начальный адрес запроса, вы можете настроить свой собственный сканер. Кроме того, Ветер-колокольчик предоставляет множество настраиваемых интерфейсов, что позволяет опытным пользователям настраивать функции сканирования в соответствии со своими потребностями. Наконец, Ветер-колокольчик естественным образом поддерживает распределённые и кластерные функции, освобождая вас от ограничений одномашинной среды и раскрывая ваши возможности сканирования. Можно сказать, что Ветер-колокольчик может собирать большую часть содержимого на большинстве существующих веб-сайтов.

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


Быстрое использование

<dependency>
    <groupId>com.yishuifengxiao.common</groupId>
    <artifactId>crawler</artifactId>
    <version>2.3.0</version>
</dependency>

QQ группа для общения: 易水组件交流群 (номер группы 624646260)

Простое использование Извлеките название электронной валюты с сайта Yahoo Finance.

// Создаём правило извлечения атрибута
// Это правило извлечения использует XPath для извлечения,
// выражение XPath равно //h1/text(), а порядок действия равен 0
ExtractFieldRule extractFieldRule = new ExtractFieldRule(Rule.XPATH, "//h1/text()", "", 0);

// Создаем правило извлечения
ExtractRule extractRule = new ExtractRule();
extractRule
    // Код извлечения, не может быть пустым, код каждого правила извлечения в одной группе должен быть уникальным
    .setCode("code")
    // Имя извлечения, можно не устанавливать
    .setName("Название зашифрованной валюты")
    // Устанавливаем правило извлечения атрибутов
    .setRules(Arrays.asList(extractFieldRule));

// Создаём экземпляр Ветер-колокольчик
Crawler crawler = CrawlerBuilder.create()
    // Начальный URL Ветер-колокольчика
    .startUrl("https://hk.finance.yahoo.com/cryptocurrencies")
    // Ветер-колокольчик сначала извлечёт все URL-адреса из загруженной веб-страницы
    // Затем он будет фильтровать URL-адреса, соответствующие правилам извлечения ссылок, и помещать их в пул запросов
    // Пул запросов будет использоваться в качестве начального URL-адреса для следующего сканирования
    // Можно добавить несколько правил извлечения ссылок. Несколько правил связаны друг с другом (или соединены).
    // Если не установлено, это означает, что все ссылки, содержащие ключевые слова домена (например, Yahoo), будут добавлены в пул ссылок
    // В этом примере все ссылки, соответствующие регулярному выражению, будут добавлены в пул
    .addLinkRule(new MatcherRule(Pattern.REGEX, "https://hk.finance.yahoo.com/quote/.+"))
    // Правило страницы контента сообщает Ветер-колокольчику, какие страницы являются страницами контента
    // Для сложных ситуаций его можно использовать вместе с правилом соответствия контента
    // Только страницы, соответствующие правилу страницы контента, будут извлекать данные
    // Из неконтентных страниц Ветер-колокольчик не будет пытаться извлечь данные
    // В данном примере все страницы, соответствующие регулярному выражению, являются страницами контента, и Ветер-колокольчик будет извлекать данные с этих страниц
    .contentPageRule(new MatcherRule(Pattern.REGEX, "https://hk.finance.yahoo.com/quote/.+")) 
    // У Ветер-колокольчика может быть несколько правил извлечения, здесь мы устанавливаем только одно правило извлечения
    // Добавляем правило извлечения
    .addExtractRule(extractRule)
    // Интервал времени запроса
    // Если он не установлен, используется значение по умолчанию 10 секунд, которое предназначено для предотвращения слишком высокой частоты сканирования и блокировки сервером
    .interval(3000)// Среднее время интервала при каждом сканировании, единица измерения — миллисекунды
    .creatCrawler();
    
    // Здесь не настроено устройство вывода информации, поэтому используется устройство вывода по умолчанию
    // Устройство вывода по умолчанию использует метод вывода журнала logback, поэтому вам нужно посмотреть информацию в консоли

    // Поскольку Ветер-колокольчик работает асинхронно, пример кода добавляет цикл
    while (Statu.STOP != crawler.getStatu()) {
            try {
                Thread.sleep(1000 * 20);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }

**Принцип работы Ветер-колокольчик** 

Принцип работы Ветер-колокольчик очень прост, в основном состоит из **диспетчера ресурсов**, **загрузчика веб-страниц**, **анализатора ссылок**, **анализатора контента** и **устройства вывода информации**.

Их функции и роли следующие:

- Диспетчер ресурсов: отвечает за процесс управления ресурсами Ветер-колокольчик, включая хранение задач, планирование задач и управление задачами.
- Загрузчик веб-страниц: отвечает за загрузку веб-страниц в соответствии с задачами, запланированными диспетчером ресурсов.
- Анализатор ссылок: отвечает за анализ содержимого, загруженного загрузчиком веб-страниц, и извлечение всех соответствующих ссылок из содержимого веб-страницы.
- Анализатор контента: отвечает за анализ содержания, загруженного загрузчиком веб-страниц, и извлечение данных.
- Устройство вывода информации: выводит данные, проанализированные анализатором контента.

Анализатор ссылок состоит из ряда экстракторов ссылок, в настоящее время основной экстрактор ссылок поддерживает регулярные выражения.

Анализатор контента состоит из нескольких экстракторов контента, каждый экстрактор контента имеет разные функции и подходит для разных сценариев анализа, поддерживая множественные комбинации, такие как дублирование, циклы и т. д.

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

**Встроенные экстракторы контента Ветер-колокольчик включают:**
1. Экстрактор исходного текста.
2. Китайский экстрактор.
3. Экстракт констант.
4. Экстрактор CSS-содержимого.
5. Экстрактор текста CSS.
6. Почтовый экстрактор.
7. Цифровой экстрактор.
8. Регулярный экстрактор.
9. Экстрактор удаления символов.
10. Экстрактор замены символов.
11. Срез строки экстрактора.
12. Экстрактор XPATH.
13. Массив срезов.
14. ...

При извлечении текстового содержимого пользователи могут свободно комбинировать эти экстракторы для извлечения необходимого содержимого. Дополнительные сведения об использовании экстракторов см. в [Использование экстракторов](https://gitee.com/zhiyubujian/wind-bell/wikis/%E6%88%AA%E5%8F%96%E6%8F%90%E5%8F%96%E5%99%A8?sort_id=1783680).

**Встроенные идентификаторы браузеров Ветер-колокольчик:**
1. Браузер Google (версия для Windows, версия для Linux).
2. Браузер Opera (версия для Windows, версия для MAC).
3. Браузер Firefox (версия для Windows, версия для Linux, версия для Mac).
4. IE-браузер (IE9, IE11).
5. Браузер EDAG.
6. Браузер Safari (версия для Windows, версия для Mac).
8. ...


 **Сканирование веб-сайта, отображаемого с помощью JavaScript** 

Основной код выглядит следующим образом:

Crawler crawler = ... crawler .setDownloader(new SeleniumDownloader("C:\Users\yishui\Desktop\geckodriver\win32.exe",3000L))




**Поддержка распределённых вычислений**

Основной код выглядит следующим образом:

.... // Опускаем другой код .... // Создание диспетчера ресурсов Redis Scheduler scheduler=new

Примечание: предоставленный перевод не является точным и может содержать ошибки. Состояние мониторинга

WindBell также предоставляет мощные функции мониторинга состояния и мониторинга событий. С помощью мониторинга состояния и мониторинга событий, WindBell позволяет вам контролировать работу задач как на ладони, оперативно управлять процессом выполнения экземпляров и решать различные проблемы, возникающие во время выполнения, обеспечивая реальное понимание состояния выполнения задач и удобство управления.

Анализатор моделирования

Благодаря мощным функциям анализа WindBell и гибким определениям правил, WindBell предоставляет анализатор моделирования. Это позволяет пользователям быстро понять, соответствуют ли настроенные правила ожидаемым целям, и своевременно корректировать определения правил для удобства настройки экземпляров WindBell.



Демонстрация платформы WindBell

  1. Настройка базовой информации

Настройка имени краулера, количества используемых потоков и времени ожидания остановки.

  1. Настройка информации о получении ссылок

Настройка начального семени ссылки и правил извлечения следующей ссылки для получения из веб-страницы.

  1. Настройка информации о сайте

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

  1. Настройка элементов извлечения

Настраивает данные, которые необходимо извлечь с веб-сайта, такие как заголовки новостей и текст веб-страниц.

  1. Настройка извлечения атрибутов

Вызывает экстрактор содержимого для произвольного комбинирования и извлечения необходимых данных в соответствии с требованиями.

  1. Тестирование извлечения атрибутов

Предварительно проверяет правильность конфигурации элементов извлечения и соответствие извлечённых данных ожидаемой цели.

Связанные ресурсы

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

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

Введение

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

Обновления

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

Участники

все

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

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