Gecco adalah perayap web ringan yang mudah digunakan yang dikembangkan dengan bahasa java. Gecco integriert jsoup, httpclient, fastjson, spring, htmlunit, redission ausgezeichneten framework, Biarkan Anda hanya perlu mengonfigurasi sejumlah pemilih gaya jQuery bisa sangat cepat untuk menulis perayap Kerangka kerja Gecco memiliki skalabilitas yang sangat baik, kerangka kerja berdasarkan prinsip desain terbuka dan tertutup, untuk memodifikasi penutupan, perluasan terbuka. Pada saat yang sama Gecco didasarkan pada protokol sumber terbuka MIT yang sangat terbuka, apakah Anda pengguna atau ingin bersama-sama meningkatkan pengembang Gecco, selamat datang untuk meminta penarikan. Jika Anda menyukai kerangka perayap, silakan beri bintang atau garpu!
< dependency >
< groupId >com.geccocrawler</ groupId >
< artifactId >gecco</ artifactId >
< version >x.x.x</ version >
</ dependency >
httpclient,jsoup,fastjson,refleksi,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 ();
}
}
Tujuan dari DynamicGecco adalah untuk mengimplementasikan konfigurasi runtime dari aturan perayapan tanpa mendefinisikan SpiderBean. Faktanya, prinsipnya adalah penggunaan pemrograman kode byte, pembuatan SpiderBean secara dinamis, tetapi juga melalui GeccoClassLoader khusus untuk mencapai aturan penerapan panas .Di bawah ini adalah Demo sederhana, Demo yang lebih kompleks dapat merujuk pada contoh di bawah ini com.geccocrawler.gecco.demo.dynamic.
Kode berikut mengimplementasikan konfigurasi runtime aturan perayapan:
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();
Anda dapat melihat bahwa cara DynamicGecco sangat berkurang dibandingkan dengan cara tradisional kode anotasi, dan poin yang sangat keren adalah DynamicGecco untuk mendukung pengoperasian definisi dan modifikasi aturan.
教您使用 java 爬虫 gecco 抓取 JD 全部商品信息(一)
教您使用 java 爬虫 gecco 抓取 JD 全部商品信息(二)
教您使用 java 爬虫 gecco 抓取 JD 全部商品信息(三)
集成 Htmlunit 下载页面
爬虫的监控
Bagaimana cara menggunakan Spring, MySQL 入库
Daftar alat serupa dan perbandingannya tersedia di sini:
Perbandingan Perangkat Lunak Pengarsipan Web
Gecco 的发展离不开大家支持,扫一扫请作者喝杯咖啡~
Silakan ikuti protokol sumber terbuka MIT!