Gecco عبارة عن زاحف ويب خفيف الوزن وسهل الاستخدام تم تطويره باستخدام لغة جافا. Gecco integriert jsoup، httpclient، fastjson، Spring، htmlunit، redission ausgezeichneten Framework، يتيح لك فقط تكوين عدد من محددات نمط jQuery التي يمكن أن تكون سريعة جدًا في كتابة الزاحف يتمتع إطار Gecco بقابلية تطوير ممتازة، ويعتمد الإطار على مبدأ التصميم المفتوح والمغلق، لتعديل الإغلاق وتوسيع الفتح. في نفس الوقت، يعتمد Gecco على بروتوكول مفتوح المصدر لمعهد ماساتشوستس للتكنولوجيا (MIT) مفتوح المصدر، سواء كنت مستخدمًا أو ترغب في تحسين مطور Gecco بشكل مشترك، فمرحبًا بك في طلب السحب. إذا كنت تحب إطار عمل الزاحف، فيرجى النجمة أو الشوكة!
< 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 全部商品信息(三)
集成 هتملونيت 下载页面
كل يوم
المصدر: الربيع، الخلية، الخلية
تتوفر قائمة بالأدوات المماثلة وكيفية مقارنتها هنا:
مقارنة برامج أرشفة الويب
جيكو تتطلع إلى تحقيق المزيد من النجاح في المستقبل
يرجى اتباع بروتوكول MIT مفتوح المصدر!