Недавно я видел инструмент Gecoo Crawler, который кажется простым и простым в использовании. Напишите демо -тест и ползайте на сайте.
http://zj.zjol.com.cn/home.html, в основном сканирует название и время выпуска новостей как объект тестирования Crawl. Это очень удобно для ползания HTML -узлов, выбирая узлы, такие как селекторы jQuery. Код GECCO в основном использует реализацию аннотации для достижения соответствия URL -адреса, что выглядит относительно кратко и красиво.
Добавить зависимости Maven
<dependency> <groupid> com.geccacrawler </groupid> <artifactid> gecco </artifactid> <sersive> 1.0.8 </version> </dependent>
Напишите страницу списка ползания
@Gecco (matchurl = "http://zj.zjol.com.cn/home.html?pageindex= {pageIndex )&pagesize= <pagesize )",pipelines =" zjnewslistpipelines ") public class zjnewsgeccolistecolisters htmlbean {@RequequeStepesteStepesteSteSteclistequeSteclistequeN weptRequeNtepErqueSteSteSteclistequeN {@Requeques @RequestParameter Private Int PageIndex; @RequestParameter Private Int PageSize; @Htmlfield (csspath = "#content> div> div> div.con_index> div.r.main_mod> div> ul> li> dl> dt> a") частный список <hrefbean> newlist;} @Pipelinememe ("zjnewslistpipelines") открытый класс zjnewslistpipelines реализует трубопровод <zjnewsgeccolist> {public void -процесс (zjnewsgeccolist zjnewsgeccolist) {httprequest request = zjnewsgeccolist.getquest (); для (hrefbean bean: zjnewsgeccolist.getnewlist ()) {// введите страницу Aspiousicious to Crawlercontext.into (request.subrequest ("http://zj.zjol.com.cn"+bean.geturl ())); } int page = zjnewsgeccolist.getPageIndex ()+1; String nextUrl = "http://zj.zjol.com.cn/home.html?pageindex="+page+"&pagesize=100"; // crawl На следующей странице schedulercontext.into (request.subrequest (nexturl)); }} Напишите страницу ползания
@Gecco (matchurl = "http://zj.zjol.com.cn/news/tcode=.html", pipelines = "zjnewsdetailepipeline") открытый класс zjnewsdetail htmlbean {@text @htmlfield (csspath = "#############)"); @Text @htmlfield (csspath = "#content> div> div.news_con> div.news-content> div: nth-child (1)> div> p.go-left.post-then.c-gray") частная строка @Pipelinemane ("zjnewsdetailpipeline") открытый класс zjnewsdetailpipeline реализует трубопровод <zjnewsdetail> {public void -процесс (zjnewsdetail zjnewsdetail) {System.out.println (zjnewsdetail.gettitle ()+ "+zjnewsdetail.getCreateTime ()); }} Запустите основную функцию
открытый класс main {public static void main (string [] rags) {geccoEngine.create () // Путь пакета проекта. // Откройте несколько потоков CRAWLER.Thread (10) // Интервал между одним гусеницей после каждого ползания ASTRED.Interval (10) // Использование PC Useragent .mobile (false) // start run.run (); }}Результаты ползания
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.