Gecco เป็นโปรแกรมรวบรวมข้อมูลเว็บน้ำหนักเบาที่ใช้งานง่ายซึ่งพัฒนาด้วยภาษาจาวา Gecco integriert jsoup, httpclient, fastjson, spring, htmlunit, กรอบงาน ausgezeichneten แบบ Redission คุณจะต้องกำหนดค่าตัวเลือกสไตล์ jQuery เพียงไม่กี่ตัวเท่านั้นจึงจะเขียนโปรแกรมรวบรวมข้อมูลได้อย่างรวดเร็วมาก กรอบงาน .Gecco มีความสามารถในการปรับขนาดได้ดีเยี่ยม กรอบงานตามหลักการของการออกแบบแบบเปิดและปิด เพื่อปรับเปลี่ยนการปิด การขยายของ open. ในขณะเดียวกัน Gecco ก็ใช้โปรโตคอลโอเพ่นซอร์สของ MIT แบบเปิด ไม่ว่าคุณจะเป็นผู้ใช้หรือต้องการร่วมกันปรับปรุงนักพัฒนา Gecco ยินดีที่จะขอ pull หากคุณชอบเฟรมเวิร์กของ crawler โปรดติดดาวหรือแยก!
< dependency >
< groupId >com.geccocrawler</ groupId >
< artifactId >gecco</ artifactId >
< version >x.x.x</ version >
</ dependency >
httpclient, jsoup, fastjson, การสะท้อน, cglib, แรด, 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 ();
}
}
วัตถุประสงค์ของ DynamicGecco คือการใช้การกำหนดค่ารันไทม์ของกฎการรวบรวมข้อมูลโดยไม่ต้องกำหนด SpiderBean ที่จริงแล้ว หลักการคือการใช้การเขียนโปรแกรมโค้ดไบต์ การสร้าง SpiderBean แบบไดนามิก แต่ยังผ่าน GeccoClassLoader แบบกำหนดเองเพื่อให้บรรลุกฎของการปรับใช้แบบร้อน ด้านล่างนี้เป็นการสาธิตแบบธรรมดา การสาธิตที่ซับซ้อนมากขึ้นสามารถดูได้จากตัวอย่างด้านล่าง com.geccocrawler.gecco.demo.dynamic
รหัสต่อไปนี้ใช้การกำหนดค่ารันไทม์ของกฎการตระเวน:
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();
คุณจะเห็นว่าวิธี DynamicGecco เมื่อเปรียบเทียบกับวิธีดั้งเดิมของโค้ดคำอธิบายประกอบลดลงอย่างมาก และจุดที่ยอดเยี่ยมคือ DynamicGecco ที่จะสนับสนุนการดำเนินการของคำจำกัดความและการปรับเปลี่ยนกฎ
教您使用 java 爬虫 gecco 抓取 JD 全部商品信息(一)
教您使用 java 爬虫 gecco 抓取 JD 全部商品信息(二)
教您使用 java 爬虫 gecco 抓取 JD 全部商品信息(三)
集成 Htmlunit 下载页的
爬虫的监控
一个完整的例子,分页处理,结合 spring,mysql 入库
รายการเครื่องมือที่คล้ายกันและวิธีการเปรียบเทียบมีอยู่ที่นี่:
การเปรียบเทียบซอฟต์แวร์เก็บถาวรเว็บ
Gecco 的发ส่วนขยาย离不開支持,扫一扫请作者喝杯咖啡~
โปรดปฏิบัติตามโปรโตคอลโอเพ่นซอร์ส MIT!