2010-01-15 13 views
44

Bazı web etkileşimlerini otomatikleştirmeyi, yani güvenli bir web sitesindeki dosyaların periyodik olarak indirilmesini arıyorum. Bu temelde kullanıcı adımı/şifremi girmeyi ve uygun URL’ye gitmeyi içerir.Linux'ta başsız, scriptli Firefox/Webkit mi?

Python'da basit bir betimlemeyi denedim, ardından daha karmaşık bir betimlemeyi izledim, yalnızca bu web sitesinin giriş yapmak için bazı gereksiz javascript ve flash tabanlı mekanizmaları kullandığını keşfettim ve yöntemlerimi işe yaramaz hale getirdim.

HTMLUnit'i denedim, ancak bu da çalışmak istemiyor. Flash kullanımından şüpheleniyorum.

Daha fazla düşünmek istemiyorum, bu yüzden oturum açmak ve ihtiyacım olan dosyayı almak için gerçek bir tarayıcıya yöneliyorum.

Gereksinimler şunlardır: linux sunucu üzerinde

  • Çalıştır (yani hiçbir X çalışıyor.). Eğer gerçekten X'e ihtiyacım varsa, bunu yapabilirim, ama mutlu olmayacağım.
  • Güvenilir olunuz. Bu şeyi başlatmak ve bir daha asla düşünmek istiyorum.
  • Betimleyici olun. Çok karmaşık bir şey yok, ancak tarayıcıya çeşitli adımlar atmayı ve sayfaları ziyaret etmeyi anlatabiliyor olmalıyım.

Başsız, X'siz bir betik tarayıcısı için iyi bir araç takımı var mı? Böyle bir şeyi denediniz mi ve eğer varsa, bilgelik sözünüz var mı?

cevap

17

IE yerleşik tarayıcısıyla ilgili görev yaptım (her ne kadar gizli tarayıcı bileşeni paneliyle gui uygulaması olsa da). Aslında herhangi bir layout engine alabilir ve çıkış mantığını kesebilirsiniz. Gezinme, komut dosyası benzeri olaylarla gerçekleştirilmelidir.

Crowbar'u kullanabilirsiniz. Bu firefox (Gecko motor) başsız sürümüdür. Tarayıcıyı istekleri kabul edebilecek RESTful sunucusuna dönüştürür ("url" getir). Bu yüzden, html'yi ayrıştırın, DOM olarak temsil edin, gerçekleştirilen tüm betik için tanımlanan gecikmeyi bekleyin.

Linux üzerinde çalışır. JS ve zengin XULrunner yeteneklerini kullanarak hedefiniz için kolayca uzatabileceğinizi varsayalım.

+0

Crowbar POST http isteklerini destekliyor mu? Belgelendirme çok zayıf ... – hamczu

1

Flash etkileşimlerini (ve ayrıca ilgileniyorum) nasıl yapacağımı bilmiyorum, ancak html/javascript için Chickenfoot'u kullanabilirsiniz.

Ve Linux üzerinde çalışan bir başsız + betik tarayıcı için Qt webkit library kullanabilirsiniz. Here is an example use.

+0

Thansk Richard, bu iyi görünüyor, denememe izin verin. – Parand

38

phantomjs nedir?

+1

PhantomJS, bütünleştirilmesi en kolay yoldur ve otomatik test çerçevelerine entegre edilmenin yollarını geliştirmektedir. –

+2

Evet, ancak bir web sitesine giriş yapmak ve çerezleri kullanmak gibi bir şey simüle etmek istiyorsanız, iyi şanslar! –

+3

Phantomjs bir X sunucusu gerektirir (http://code.google.com/p/phantomjs/issues/detail?id=33) –

8

Selenium'u denediniz mi? Firefox için bir uzantı kullanarak bir kullanım senaryosunu kaydetmenize izin verir, daha sonra bir dizi farklı yöntem kullanılarak tekrar çalınabilir.

Düzenleme: Bunun çok geç bir yanıt olduğunu anladım.

6

WebKitDriver'a bir göz atın. Proje, WebKit'in başsız bir şekilde uygulanmasını içerir.Linux için

-1

IMacros komut Firefox ve Chrome yapmanızı sağlar: http://wiki.imacros.net/Linux

+0

iMacros Linux üzerinde çalışırken, yönergeler özellikle DISPLAY ayarı gerektiren bir teknik tanımlar; başsız çalışan, ancak bir pencere ortamı ihtiyacı var. –

0

Bunu gerçekleştirmek için, sadece CouchDBs (example ve Futon) göndermek Chrome uzantılarını yazın. Etki alanları arası XHR'lere izin vermek için manifestodaki izinlere Couch'ı ekleyin.

Ayrıca tuhaf dikkate;

(Ben bir noktada Levyeyi deneyeceğim Konuyu bulunamadı sahip. Ben yapıyorum ne başsız alternatif arayışı içinde bu iş parçacığı geldi) Bu web sitesinin özellikleri, Flash ve Javascript'in etrafından dolaşmak için bazı güvenlik açıklarından yararlanıp yararlanamayacağınızı merak edemiyorum.

İlgili konular