2014-06-23 14 views
6

Bir web sitesi tarama, site URL'lerinin ve kaynak türlerinin bir listesini, içeriğini oluşturma yeteneğine sahip Groovy (Grails framework ve MongoDB veritabanı kullanarak) bir web tarayıcısı geliştirmek istiyorum yanıt süreleri ve ilgili yeniden yönlendirmelerin sayısı.Paletli

JSoup vs Crawler4j üzerinde tartışıyorum. Temel olarak ne yaptığını okudum ama ikisi arasındaki farkı açıkça anlayamıyorum. Yukarıdaki işlevsellik için hangisinin daha iyi olacağını öneren var mı? Yoksa ikisini karşılaştırmak tamamen yanlış mı?

Teşekkürler.

cevap

13

Crawler4J bir tarayıcıdır, Jsoup bir ayrıştırıcıdır. Aslında ikisini de kullanabilirdiniz. Crawler4J, tüm URL'leri ve istediğiniz sitenin tüm sayfalarını (içeriği) almak için kullanabileceğiniz çok iş parçacıklı bir arabirimdir. Bundan sonra, verileri ayrıştırmak, şaşırtıcı (jquery-like) css seçicileriyle Jsoup'u kullanabilir ve aslında onunla bir şeyler yapabilirsiniz. Tabii ki dinamik (javascript üretilen) içeriği göz önünde bulundurmalısınız. Bu içeriği de isterseniz, içeriği ayrıştırmadan önce javascript'i çalıştıracak bir javascript motoru (başsız tarayıcı + ayrıştırıcı) içeren htmlunit veya webdriver (selenium) gibi başka bir şeyi kullanmanız gerekir.

+1

Tam olarak aynı şeyi düşündüm. Aslında hem bir tarayıcıya hem de ayrıştırıcıya ihtiyacım var. Paletli crawler4j olabilir ama ayrıştırıcı için şüpheliyim. JSoup diğer ayrıştırıcılardan çok "Groovier" dir. Htmlunit "önemsiz ötesinde bir şey" javascript olan birkaç durumda başarısız olur. Ayrıca, kullanıcı incelemelerinden, web sitelerinin <% 50'sinde çalıştığı anlaşılmaktadır. –

+1

Belki webdriver. Kullanmamıştım ama mükemmel şeyler duydum. – alkis

+1

Selenyum web sürücüsünü JSoup ile entegre etmeye çalışıyorum. Önerin için teşekkürler. –