Слияние кода завершено, страница обновится автоматически
Cetty
Лёгкий фреймворк для краулеров, основанный на событийной модели.
An event dispatch crawler framework.
<dependency>
<groupId>com.jibug.cetty</groupId>
<artifactId>cetty-core</artifactId>
<version>0.1.8</version>
</dependency>
/**
* Получение заголовков статей с форума Тяньаньмэнь
* http://bbs.tianya.cn/list-333-1.shtml
*
* @author heyingcai
*/
public class Tianya extends ProcessHandlerAdapter {
@Override
public void process(HandlerContext ctx, Page page) {
//Получение Document
Document document = page.getDocument();
//dom разбор
Elements itemElements = document.
select("div#bbsdoc>div#bd>div#main>div.mt5>table>tbody").
get(2).
select("tr");
List<String> titles = Lists.newArrayList();
for (Element item : itemElements) {
String title = item.select("td.td-title").text();
titles.add(title);
}
//Получаем объект Result, передаём наши результаты следующему обработчику
Result result = page.getResult();
result.addResults(titles);
//Через метод fireXXX передаём результаты текущего обработчика следующему
//В этом примере мы сразу передаём результат в ConsoleHandler, который выводит его на консоль
ctx.fireReduce(page);
}
public static void main(String[] args) {
//Запуск стартового класса
Bootstrap.
me()
//Синхронный сбор
.isAsync(false)
//Запускаем один поток
.setThreadNum(1)
//Собираем с URL
.startUrl("http://bbs.tianya.cn/list-333-1.shtml")
//Общая информация о запросе
.setPayload(Payload.custom())
//Добавляем собственный обработчик
.addHandler(new Tianya())
//Добавляем обработчик по умолчанию, выводящий результаты в консоль
.addHandler(new ConsoleReduceHandler())
//Включаем режим реального времени или нет. Если режим не включён, то при отсутствии задач в очереди краулер автоматически переходит в состояние close
.isDuration(false)
.start();
}
}
Версия | Описание |
---|---|
0.1.0 | Поддержка основных функций краулера |
0.1.5 | 1. Поддержка xpath 2. Исправлена проблема с неработающими cookie 3. Оптимизация базовой логики |
0.1.7 | Исправление ошибок в базовом коде |
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )