Gecco ist ein benutzerfreundlicher, leichter Webcrawler, der mit der Java-Sprache entwickelt wurde. Gecco integriert jsoup, httpclient, fastjson, spring, htmlunit, redission ausgezeichnete Frameworks. Sie müssen nur eine Reihe von Selektoren im jQuery-Stil konfigurieren, um sehr schnell einen Crawler schreiben zu können Das Gecco-Framework verfügt über eine hervorragende Skalierbarkeit. Das Framework basiert auf dem Prinzip des offenen und geschlossenen Designs, um den Verschluss zu ändern und zu erweitern. Gleichzeitig basiert Gecco auf einem sehr offenen Prinzip MIT-Open-Source-Protokoll, unabhängig davon, ob Sie Benutzer sind oder den Gecco-Entwickler gemeinsam verbessern möchten, können Sie jederzeit Pull anfordern. Wenn Ihnen das Crawler-Framework gefällt, markieren oder verzweigen Sie es bitte!
< dependency >
< groupId >com.geccocrawler</ groupId >
< artifactId >gecco</ artifactId >
< version >x.x.x</ version >
</ dependency >
httpclient,jsoup,fastjson,reflections,cglib,rhino,log4j,jmxutils,commons-lang3
@ Gecco ( matchUrl = "https://github.com/{user}/{project}" , pipelines = "consolePipeline" )
public class MyGithub implements HtmlBean {
private static final long serialVersionUID = - 7127412585200687225L ;
@ RequestParameter ( "user" )
private String user ;
@ RequestParameter ( "project" )
private String project ;
@ Text
@ HtmlField ( cssPath = ".pagehead-actions li:nth-child(2) .social-count" )
private String star ;
@ Text
@ HtmlField ( cssPath = ".pagehead-actions li:nth-child(3) .social-count" )
private String fork ;
@ Html
@ HtmlField ( cssPath = ".entry-content" )
private String readme ;
public String getReadme () {
return readme ;
}
public void setReadme ( String readme ) {
this . readme = readme ;
}
public String getUser () {
return user ;
}
public void setUser ( String user ) {
this . user = user ;
}
public String getProject () {
return project ;
}
public void setProject ( String project ) {
this . project = project ;
}
public String getStar () {
return star ;
}
public void setStar ( String star ) {
this . star = star ;
}
public String getFork () {
return fork ;
}
public void setFork ( String fork ) {
this . fork = fork ;
}
public static void main ( String [] args ) {
GeccoEngine . create ()
. classpath ( "com.geccocrawler.gecco.demo" )
. start ( "https://github.com/xtuhcy/gecco" )
. thread ( 1 )
. interval ( 2000 )
. loop ( true )
. mobile ( false )
. start ();
}
}
Der Zweck von DynamicGecco besteht darin, die Laufzeitkonfiguration der Crawl-Regel zu implementieren, ohne SpiderBean zu definieren. Tatsächlich besteht das Prinzip in der Verwendung von Bytecode-Programmierung, der dynamischen Generierung von SpiderBean, aber auch durch den benutzerdefinierten GeccoClassLoader, um die Regel der Hot-Bereitstellung zu erreichen Unten finden Sie eine einfache Demo. Eine komplexere Demo finden Sie im folgenden Beispiel: com.geccocrawler.gecco.demo.dynamic.
Der folgende Code implementiert die Laufzeitkonfiguration der Crawl-Regel:
DynamicGecco.html()
.gecco("https://github.com/{user}/{project}", "consolePipeline")
.requestField("request").request().build()
.stringField("user").requestParameter("user").build()
.stringField("project").requestParameter().build()
.stringField("star").csspath(".pagehead-actions li:nth-child(2) .social-count").text(false).build()
.stringField("fork").csspath(".pagehead-actions li:nth-child(3) .social-count").text().build()
.stringField("contributors").csspath("ul.numbers-summary > li:nth-child(4) > a").href().build()
.register();
GeccoEngine.create()
.classpath("com.geccocrawler.gecco.demo")
.start("https://github.com/xtuhcy/gecco")
.run();
Sie können sehen, dass die Methode von DynamicGecco im Vergleich zur herkömmlichen Methode zum Annotieren von Code erheblich reduziert ist. Ein sehr interessanter Punkt ist, dass DynamicGecco die Definition und Änderung von Regeln unterstützt.
教您使用 Java 爬虫 Gecco 抓取 JD 全部商品信息(一)
教您使用 Java 爬虫 Gecco 抓取 JD 全部商品信息(二)
教您使用 Java 爬虫 Gecco 抓取 JD 全部商品信息(三)
集成 Htmlunit 下载页面
爬虫的监控
Eine weitere Möglichkeit ist die Verwendung von Spring und MySQL
Eine Liste ähnlicher Tools und deren Vergleich finden Sie hier:
Vergleich der Webarchivierungssoftware
Gecco 的发展离不开大家支持, 扫一扫请作者喝杯咖啡~
Bitte befolgen Sie das Open-Source-Protokoll MIT!