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

OSCHINA-MIRROR/hexleowang-WebFetch

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

WebFetch

Беззависимый минималистичный сетевой паук-компонент, способный работать на мобильных устройствах.

Цели WebFetch:

  • отсутствие сторонних зависимостей jar-пакетов;
  • сокращение использования памяти;
  • повышение коэффициента использования процессора;
  • ускорение скорости сетевого сканирования;
  • понятный и простой API-интерфейс;
  • стабильная работа на устройствах Android;
  • небольшой, гибкий и удобный для интеграции компонент для сбора веб-страниц.

Использование документа

WebFetch прост в использовании, что позволяет начинающим пользователям быстро приступить к работе. WebFetch предоставляет пользователю конфигурацию метода обработки по умолчанию, который по умолчанию использует System.out.print для вывода информации о странице на консоль (можно изменить поведение по умолчанию с помощью настройки PageHandler).

Код запуска:

WebFetch webFetch = new WebFetch();
webFetch.addBeginTask("https://github.com").start();

Остановочный код:

webFetch.close();

После выполнения метода start() WebFetch не блокирует выполнение программы, можно добавить несколько адресов веб-сайтов, в настоящее время поддерживаются протоколы http и https, требуется как минимум один начальный адрес. Примечание: текущая версия (webfetch_v0.0.1) стабильно работает в среде Java для настольных компьютеров.

Расширенные настройки WebFetch

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

  • addBeginTask(String url): метод ввода задачи сканирования веб-страницы, можно вызывать несколько раз для добавления начального адреса, передавая различные параметры, такие как настройка Cookie и кодировка страницы, или напрямую передавать объект Request (Request содержит всю информацию о запросе, которую можно настроить с помощью set). Пример: самый простой способ вызова — это прямая передача URL.
//最简单的调用方式是直接传入url
webFetch.addBeginTask("https://github.com");
  • addRule(String pattern): добавляет правило сканирования URL, можно добавлять несколько правил, несколько правил связаны отношением «и», используется регулярное выражение для проверки, и полученный URL должен пройти проверку, чтобы быть добавленным в новую очередь задач. Например: только сканирование URL-адресов на github.com, содержащих ключевое слово p, другие проанализированные URL-адреса будут отброшены.
//只抓取github.com下,带有p关键字的URL,其他解析出来的URL直接丢弃
webFetch.addRule(".*?github\.com.*?p.*?");
  • setMaxPageLayer(int max): устанавливает уровень сканирования веб-страниц, начиная с 0 для начального адреса и заканчивая n, отрицательное значение указывает на бесконечное количество уровней. Эта настройка специально разработана для WebFetch, и не все сканеры имеют эту функцию. Задачи сканирования веб-страниц управляются очередью, которая представляет собой узкоспециализированный подход к сканированию, предназначенный для сканирования каталогов пиратских романов. Например: структура сайта выглядит следующим образом (A, B, C... представляют веб-страницы), A является начальным адресом, переданным через addBeginTask, A находится на уровне 0, B, C, D находятся на уровне 1, E, G находятся на уровне 2, а F — на уровне 3. A — начальная страница, поиск ограничен двумя уровнями (первый уровень равен 0).
	//设置A为起始页面,搜索层次为两层(第一层为0)
	webFetch.addBeginTask("http://A").setMaxPageLayer(1).start();

Полученный набор страниц: {A, B , C , D}. WebFetch будет записывать уже посещённые URL в памяти, чтобы избежать повторного посещения.

public class WebFetch {
	...
	//установка количества потоков для сканера, отделена от обработки страниц, выполняет специализированную работу по сканированию сети, по умолчанию 5 потоков
	public WebFetch setThreadSize(int max);
	//установить количество повторных попыток для одной страницы, по умолчанию не повторяется
	public WebFetch setRetryTimes(int times);
	//настройки прокси
	public WebFetch setProxy(String host , int port , Proxy.Type type);
	//ограничение количества отправленных HTTP-запросов (независимо от успеха или неудачи), по умолчанию без ограничений
	public WebFetch setMaxTaskSize(int max);
	//время ожидания соединения, по умолчанию 8 секунд
	public WebFetch setConnectionTimeout(int timeout);
	//время чтения страницы, по умолчанию 10 секунд
	public WebFetch setReadTimeout(int timeout);
}

О проекте

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

Контакты: wanghailiang333@qq.com

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

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

Введение

Независимый минималистичный компонент для веб-скрейпинга, способный работать на мобильных устройствах. Развернуть Свернуть
Отмена

Обновления

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

Участники

все

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

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