Gecco est un robot d'exploration Web léger et facile à utiliser développé avec le langage Java. Gecco intègre jsoup, httpclient, fastjson, spring, htmlunit, redission ausgezeichneten framework, il vous suffit de configurer un certain nombre de sélecteurs de style jQuery pour écrire un robot très rapidement. Le framework .Gecco a une excellente évolutivité, le framework basé sur le principe de conception ouverte et fermée, pour modifier la fermeture, l'expansion de l'ouverture. En même temps Gecco est basé sur un protocole open source MIT très ouvert, que vous soyez un utilisateur ou que vous souhaitiez améliorer conjointement le développeur Gecco, n'hésitez pas à demander pull. Si vous aimez le framework de robot d'exploration, veuillez suivre ou bifurquer !
< 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 ();
}
}
Le but de DynamicGecco est d'implémenter la configuration d'exécution de la règle de crawl sans définir le SpiderBean. En fait, le principe est l'utilisation de la programmation en byte code, la génération dynamique du SpiderBean, mais aussi via le GeccoClassLoader personnalisé pour réaliser la règle de déploiement à chaud. .Vous trouverez ci-dessous une démo simple, une démo plus complexe peut se référer à l'exemple ci-dessous com.geccocrawler.gecco.demo.dynamic.
Le code suivant implémente la configuration d'exécution de la règle d'analyse :
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();
Vous pouvez voir que la méthode DynamicGecco est considérablement réduite par rapport à la méthode traditionnelle de code d'annotation, et un point très intéressant est DynamicGecco pour prendre en charge le fonctionnement de la définition et de la modification des règles.
Il s'agit de java et de gecco, ainsi que de JD.
Il s'agit de java et de gecco, ainsi que de JD.
Il s'agit de java et de gecco, ainsi que de JD.
集成 Htmlunit 下载页面
爬虫的监控
一个完整的例子,分页处理,结合 spring,mysql 入库
Une liste d’outils similaires et comment ils se comparent est disponible ici :
Comparaison des logiciels d'archivage Web
Gecco 的发展离不开大家支持,扫一扫请作者喝杯咖啡~
Veuillez suivre le protocole open source MIT !