4.4 Конфігурація пошукача, запуск і зупинка
4.4.1 Пошукач Spider
Spider початок запуску пошукача.
Перед початком скануванням пошукачем, нам потрібно за допомогою PageProcessor створити об'єкт павука Spider, а тоді запустити його методом run().
На відміну інші компоненти веб-павука Spider (завантажувач Downloader, планувальник Scheduler, інфопровід Pipeline) можуть бути установлени методами set.
| метод | опис | приклади |
|---|---|---|
| create(PageProcessor) | створити Spider |
spider.create(new GithubRepoProcessor()) |
| addUrl(String…) | додати URL ініціалізації | spider.addUrl("http://webmagic.io/docs/") |
| addRequest(Request...) | додати Request ініціалізації | spider.addRequest("http://webmagic.io/docs/") |
| thread(n) | к-ть потоків n | spider.thread(5) |
| run() | запуск, розблокування поточного потоку його визовом | spider.run() |
| start()/runAsync() | асинхнонний старт, продовження з поточного потоку thread | spider.start() |
| stop() | стоп пошукача | spider.stop() |
| test(String) | тестова сторінка для пошукача | spider.test("http://webmagic.io/docs/") |
| addPipeline(Pipeline) | додати інфопровід Pipeline, у Spider може бути кілька Pipeline |
spider.addPipeline(new ConsolePipeline()) |
| setScheduler(Scheduler) | установки Планувальника Scheduler, Spider повинен мати Scheduler |
spider.setScheduler(new RedisScheduler()) |
| setDownloader(Downloader) | установки Завантажувача Downloader, Spider повинен бути мати Downloader |
spider.setDownloader(new SeleniumDownloader()) |
| get(String) | синхронні визови та прямий доступ до результатів | ResultItems result = spider.get("http://webmagic.io/docs/") |
| getAll(String…) | синхронні визови та прямий доступ до купи результатів | List<ResultItems> results = spider.getAll("http://webmagic.io/docs/", "http://webmagic.io/xxx") |
4.4.2 Site
Сам сайт, деяка інформація про конфігурацію, така як кодування, HTTP заголовок, тайм-аут, стратегія повторних спроб, агентів і т.д., можуть бути налаштовані шляхом установок set об'єкта Site.
| метод | опис | приклади |
|---|---|---|
| setCharset(String) | установка кодування сторінки encoding code page |
site.setCharset("utf-8") |
| setUserAgent(String) | установка UserAgent |
site.setUserAgent("Spider") |
| setTimeOut(int) | установка тайм-аут в мілісекундах | site.setTimeOut(3000) |
| setRetryTimes(int) | установка к-ті повторних спроб | site.setRetryTimes(3) |
| setCycleRetryTimes(int) | установка циклу повторних спроб | site.setCycleRetryTimes(3) |
| addCookie(String, String) | додати cookie |
site.addCookie("dotcomt_user", "code4craft") |
| setDomain(String) | установити доменне ім'я, можливо встановити пізніше, вступають в силу тільки з addCookie |
site.setDomain("github.com") |
| addHeader(String,String) | додати заголовок визову header |
site.addHeader("Referer","https://github.com") |
| setHttpProxy(HttpHost) | налаштування Http proxy |
site.setHttpProxy(new HttpHost("127.0.0.1",8080)) |
Цикл повторних спроб - механізм CycleRetryTimes додано починаючи з версії 0.3.0
Цей механізм для тих URL, що не зміг завантажити з setCycleRetryTimes(int) разів.
Пройшовши увесь цикл він не буде повертати назад ці сторінки в кінець черги (повторних спроб). Має сенс для сторінок в мережі, що можуть бути тимчасово чи взагалі недоступні.