2011-02-23 11 views
5

API ile bittiği görülüyor. Onlar Search Gateway denilen çok daha az güçlü bir araç var. Bunu kullanarak uçak bileti fiyat verilerini kazımaya nasıl başlarım? Bu mümkün mü? Mümkünse PHP veya Ruby on Rails üzerinde çalışmayı tercih ederim.Fiyatlandırma verileri kayak.com'dan nasıl kazılır?

Özellikle, yaklaşık 10 çift şehir arasındaki en düşük uçak bileti fiyatı hakkında veri toplamaya başlamak istiyorum. Günün her saati için veri almak istiyorum. Kanoyu el ile kontrol edebilirim, ancak bu süreci otomatik hale getirebilmek istiyorum.

+1

Bunu yapmak istemiyorum çünkü ekran kazıma işlemi basit bir hack, web sitenizi güncelleyeceğiniz her defasında senaryonuzu güncellemeniz gerekecek. Ayrıca, yasal bakış açısıyla, verilerini kendi rızası olmadan kullanmanız veya yalnızca IP'nizi yasaklamanız için size dava açabilirler. – RageZ

+1

Evet, API'larından kurtulduklarında, muhtemelen sizden oradan veri almanızı istemediğinden emin olabilirsiniz. – Brad

+0

İyi nokta. Ben yeni bir e-mail yazdım ve izin istedim. Umarım aldırmazlar, çünkü benim küçük projem sunucularına gereksiz bir yük getirmeyecek. – dasl

cevap

2

Railscast'in screen scraping üzerinde bir bölümü vardır. Temel olarak, ihtiyacınız olan verilere ulaşmak için web sitesini ayrıştırmak için nokogiri gem'i kullanabilirsiniz.

Düzenli olarak çalıştırmak için, bunun için bir cron işi oluşturabilirsiniz. İşte ilgili bir stackoverflow question.

Siteyi bir yerde barındırmak istiyorsanız Heroku önerebilirim. Özgür olmayacak tek şey, cron işini günde bir kereden fazla çalıştırıyor. Ama eğer günde bir kez koşmakla sorun yoksa, her şey bedavaya ev sahipliği yapacak.

+0

Birisi bunu zaten yaptı mı? Bu gibi bir şey yapmayı planlıyorum, ama aynı işi yapan herhangi bir OSS projesi olup olmadığını merak ediyordum .. –

0

çek i çeşitli otel rezervasyon siteleri kazıma ekran için kullandı, iMacros deneyin.

Ama iyi bir araçla bile, hala çok iş var. Yani sadece bir uçuş için rezervasyon yapmazdım ...

-1

Python'un istek kütüphanesini kullanarak bunu yapabilirsiniz; Ancak, Kayak, otomatik komut dosyalarından ve botlardan gelen trafiği tespit etmek ve filtrelemek için çerezleri ve http başlıklarını kullanır. Bunu atlatmak için GET ve POST isteklerinin neler yapıldığını ve hangi URL'lerin ve hangi çerezlerin ayarlandığını anlamak zorundasınız. Ek olarak, doğru HTTP başlıklarını aldatmadan, komut dosyası/bot algılanır. İşte başarılı bir şekilde çalışan bir python betiği: http://www.

+1

Bu bağlantı soruyu yanıtlayabilirken, cevabın temel kısımlarını buraya dahil etmek ve referans için bağlantı sağlamak daha iyidir. Bağlantılı sayfa değiştiğinde yalnızca bağlantı yanıtları geçersiz olabilir. - [Yorum yaz] (/ review/düşük kaliteli yazılar/18988139) – dferenc

+0

Lütfen bir araç veya kütüphaneyi cevap olarak göndermeyin. En azından cevabın kendisinde [sorunu nasıl çözer] (http://meta.stackoverflow.com/a/251605) gösteriniz. – LW001