Ich habe kürzlich das GECOO -Crawler -Tool gesehen, das sich einfach und einfach anfühlt. Schreiben Sie einen Demo -Test und kriechen Sie die Website.
http://zj.zjol.com.cn/home.html kriecht hauptsächlich den Titel und die Veröffentlichung der Nachrichten als Crawl -Testobjekt. Es ist sehr bequem, HTML -Knoten zu kriechen, indem Sie Knoten wie JQuery -Selektoren auswählen. Der GECCO -Code verwendet hauptsächlich Anmerkungen implementiert, um eine URL -Matching zu erreichen, die relativ präzise und schön aussieht.
Fügen Sie Maven -Abhängigkeiten hinzu
<Depopenty> <gruppe> com.geccacrawler </Groupid> <artifactId> GECCO </artifactid> <version> 1.0.8 </Version> </abhängig>
Schreiben Sie eine Crawl List -Seite
@Gecco (matchurl = "http://zj.zjol.com.cn/home.html?pageIndex= {pageIndex}pageSize= ipagesize] ainpinines =" ZjnewsListPipel ") Public Class zjnewsgecolist implementiert htmlbean | @RequestParameter Private int pageIndex; @RequestParameter Private int pageSize; @Htmlfield (csspath = "#Content> div> div.con_index> div.r.main_mod> div> ul> li> dl> dt> a") private Liste <hrefbean> newList;} @PipelInename ("ZJNewSlistPipelines") Public Class ZJNewSlistPipelines implementiert Pipeline <zjnewsgecolist> {public void prozess (zjnewsgeccolist zjnewsgecolist) {httprequest Request = zjnewsgeccolist.GEquest.); für (hrefbean bean: zjNewsgecolist.getNewList ()) {// Geben Sie die ausgegasste Seite ein, um SchedulerContext.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"; // Die nächste Seite endercontext.into (request.subRequest (nexturl)) crawl; }} Schreiben Sie eine Kriechseite
@Gecco (matchurl = "http://zj.zjol.com.cn/news/[code weise.html", pipelines = "zjnewsdetailpipeline") public class class zjnewsdetail implements htmlBean {@text @htmlfield (csspath = "#" #headline ") privat string; @Text @htmlfield (csspath = "#Content> div.news_con> div.news-content> div: nth-child (1)> div> p.go-linft.post-time.c-grau") private String createtime;} @PipelInename ("ZjNewsDetailPipipeline") öffentliche Klasse ZjNewsDetailPipeline implementiert Pipeline <zjNewsDetail> {public void Process (ZjnewsDetail zjnewsDetail) {System.out.println (ZjnewsDetail.Gettitle ().Gettitle () ()+"+"+"+" "+zjnewsDetail.getCreateTime ()); }} Starten Sie die Hauptfunktion
public class main {public static void main (String [] Rags) {Geccoengine.create () // Der Paketpfad des Projekts.Classpat ("com.zhaochao.gecco.zj") // Die Seitenadresse, die Crawling.start ("http:/zj.zjol.cnjol.Cnjol.cn/home.home.home.home.home.home.home beginnt // mehrere Crawler -Threads öffnen }}Kriechergebnisse
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.