Ruby kullanarak Web Kazıma – Eğitim

Yayınlanan: 2017-08-24

Web verilerinin kayda değer yükselişi ve katlanarak büyümesi, çeşitli sektörler için yeni yolların kilidini açmıştır. Üretim birimlerinden hizmet sektörlerine kadar, veriler, dünyanın her yerindeki işletmeler tarafından gelişen zamanlarla ilgili kalmak için benimsenen önemli bir bileşendir. Web verileri yalnızca rekabet ve pazar hakkında bir altın madeni bilgisine sahip olmakla kalmaz, aynı zamanda dahili süreçleri ve operasyonları iyileştirmek için kullanılabilecek içgörüler sunar.

Web kazıma, analitik motoru veya BI aracı tarafından daha fazla kullanım için hedeflenen çevrimiçi verilerin çıkarılmasına yardımcı olur. Web kazıma amacı çeşitli kalır -

  • Veri çıkarma, işletmenizin reklamını yapmanın ve ürünleri/hizmetleri tanıtmanın etkili bir yoludur
  • Kullanıcılar, tüketiciler ve web ziyaretçileri bir hizmet veya ürün hakkında istenen bilgileri alabilir.
  • Şirketler, ilgili pazar paylarını büyütmek için mevcut stratejiler ve planlar hakkında rekabetçi istihbarat elde edebilir.
  • Markalar, insanlar arasındaki sosyal medya etkileşimleri aracılığıyla markaları hakkındaki genel algıyı öğrenebilirler. Bu, pazarlama ekiplerinin özellikle bu kitlenin kişiliğine yönelik ilgili pazarlama mesajlarını tasarlamasına ve dağıtmasına yardımcı olur, böylece dönüşüm olasılığını artırır.
  • İşletmeler, hedef kitlelerinin ihtiyaçları, acı noktaları ve tercihleri ​​konusunda daha fazla netlik kazanabilir. Daha sonra bu değerli zeka ile ürün geliştirmeyi doğru yönde yönlendirebilirler.

Web verilerini yapılandırabilirsek, gürültüden kurtulabilir ve bunları makine tarafından okunabilir biçimlere aktarabilirsek faydalarını bir düşünün. Ruby kullanarak bunun nasıl yapılabileceğini görelim.

Kodlama komut dosyasının seçimi

Veri çıkarma ve web kazıma uygulamalarının fiili uygulaması kolay bir iş değildir. Temel CSS, HTML ve doğru kodlama komut dosyası bilgisi, yolculuğunuzu sorunsuz hale getirecektir. Kodlama komut dosyası seçiminiz bu bağlamda çok önemli bir rol oynayacaktır. Ruby'nin piyasada neden bir vızıltı yarattığını öğrenelim.

İlk web kazıma programınızı başlatmayı planlıyorsanız, Ruby güvenilir bir komut dosyası dili rolünü oynayabilir. Bu dilin eşsiz popülaritesinden birkaç neden sorumludur ve aşağıdaki nedenler, neden bu kadar etkili olduğunu anlamanıza yardımcı olacaktır!

  • Güçlü bir komut dosyası : Ruby-On-Rails, web kazıma için oldukça güçlü ve etkili bir komut dosyasıdır. Yeni başlayanlar ve yeni başlayanlar için bu özel dilin güçlü bir kaynak olduğu kanıtlanmıştır.
  • Güvenilir topluluk : Ruby, güvenilir ve son derece güvenilir bir topluluk oluşturan güçlü bir geliştirici ekibiyle birlikte gelir. Milyonlarca belge ile sizin için büyük bir sorun olmayacak!
  • Kolay kurulum : Kurulum prosedürü iyi belgelenmiştir ve takip edilmesi oldukça kolaydır.

Bunlar, Ruby'yi web kazıma için vazgeçilmez bir seçenek yapan faktörlerden bazılarıdır. Bu işlemler, veri çıkarma işlemlerinin yürütülmesi için kritik öneme sahip olduğundan, kurulum ve kurulum en uygun şekilde yapılmalıdır. İşte size süreç boyunca yardımcı olacak kapsamlı bir eğitim.

Adım adım kılavuz

Başlamadan önce, bazı noktalar hakkında net olalım. Bu eğitim, Mac kullanıcılarına yöneliktir, farklı bir makine kullanıyorsanız, ilk kurulum işlemi biraz farklı olabilir. İkincisi, program web sayfalarını 'Ruby nesnelerine' dönüştürebilen ve böylece web kazıma sürecini basitleştiren Nokogiri'yi kullanır. Bu iki faktörü göz önünde bulundurarak projelerinize başlayabilirsiniz.

Bu kılavuzda, kullanılmış arabalar için olx ile ilgili ilk 100 listenin manşetlerini kazıyacağız.

Kurulum süreci

Ruby kullanarak web çıkarma için eksiksiz bir kurulum geliştirmek için temel gereksinimler.

  • Bilgisayarınız, ister masaüstü ister dizüstü olsun, üzerinde Ruby olmalıdır. Mac'e sadık biriyseniz, işin yarısı bitmiş demektir.
  • Bir metin düzenleyiciye ihtiyacınız olacak. Program komutlarını yazmak için bu gereklidir. Bilgisayarınızda yerleşik bir seçenek yoksa, Sublime Text'i indirmeyi deneyin. Heyecan verici özellikler ve harika kontrollerle bu metin düzenleyici, kodlamayı heyecan verici ve ilginç hale getirecek.
  • Diğer bir gereklilik ise HTML ve CSS kullanımı hakkında derinlemesine bilgi sahibi olmaktır. Web kazıma sanatında ustalaşmayı planlıyorsanız, CSS ve HTML bilgisi çok önemli olacaktır.
  • Ruby hakkında bilgi sahibi olun. Bu bağlamda biraz bilgi önemlidir. Bazı çevrimiçi kurslara göz atabilir ve bilgi tabanınızı geliştirebilirsiniz. Bu süreçler ve faktörler yerine getirildiğinde, önemli adımlara başlama zamanı gelecektir.

1. Adım: Bağımlılıkları yükleme

Yükleme işlemi sırasında, üç yararlı Ruby Gems hakkında eksiksiz bilgi edindiğinizden emin olun. Bu üç seçenek şunları içerir:

  • NokoGiri
  • HTTP partisi
  • Gözetlemek

Nokogiri hakkında biraz bilgi verdiğimiz için HTTParty ve Pry'ı tartışalım. HTTParty, web kazıyıcımızın, kazımakta olduğumuz sayfalara HTTP istekleri göndermek için kullanacağı bir mücevherdir. Sayfanın tüm HTML içeriğini bir dize olarak döndürecek olan GET isteklerini göndermek için HTTParty kullanacağız. Hata ayıklama için yakut bir mücevher olan Pry kullanıyoruz. Web sayfasının kodunu ayrıştırmamıza yardımcı olacak ve bu kurulumda önemli bir bileşendir.

Aşağıdaki komutları izleyin ve bu taşları bilgisayarınıza yüklemek için bunları makinenizde çalıştırın.

gem yükleme nokogiri

mücevher yükleme partisi

mücevher yükleme gözetleme

Adım 2: Sıyırıcı dosyalarının oluşturulması

Bilgisayarınızda tercih edilen konumlardan herhangi birinde nokogiri_tutorial adlı bir klasör oluşturmanız gerekecektir. Masaüstü bunu yapmak için mükemmel bir yerdir. Bir sonraki adım, 'Sublime Text' gibi bir metin düzenleyiciyi veya istediğiniz herhangi bir seçeneği indirmek ve dosyayı “web_scraper.RB” adlı bu klasöre kaydetmektir. Bu adımları tamamladığınızda, bağımlılıklar üzerinde çalışmaya hazırsınız.

3. Adım: Sayfaya HTTP istekleri gönderme

'Sayfa' adında bir değişken işlem oluşturarak başlayın ve bunun, kazımakta olduğumuz sayfanın HTTParty GET isteğine eşit olduğundan emin olun.

Bu durumda: https://www.olx.in/all-results/q-cars/

Bundan sonra, “Pry. başlat (bağlayıcı).” Web_scraping.Rb dosyası olarak işaretlenmiş klasörü bulun ve bulun. Hemen masaüstünüze kaydedin ve bu komutu girerek terminali açın.

cd masaüstü/nokogiri_tutorial

Web kazıma programınız uygulanmaya hazır. Bu komutu çalıştırabilir ve çalıştırabilirsiniz:

Ruby web_scraper.RB

Terminal, Pry'a dönüştürülmelidir ve sonraki işlemler üzerinde çalışmadan önce yerleşimi kontrol etmek önemlidir. Bir sonraki adıma geçebilirsiniz. Ancak bunu yapmadan önce, seçilen terminale 'exit' yazdığınızdan, Pry'dan ayrıldığınızdan ve ardından program klasörünün orijinal konumuna döndüğünüzden emin olun.

Adım 4: NokoGiri'ye Geçmek

Buradaki amaç , ayrıştırma için çok önemli olduğu için ilk olarak bu araba listelerini NokoGiri nesnelerine dönüştürmek ve değiştirmektir. Değişken oluşturma önemlidir ve “parse_page” adında yeni bir tane geliştirmeniz gerekecektir. Nokogiri, HTML dizelerini Nokogiri nesnelerine dönüştürmenin kendine özgü bir yoluna sahiptir. Pry'ı kodun en altına bırakabilirsiniz.

Sonraki adım Ruby komutunu içeren dosyayı kaydetmek olacaktır. Pry otomatik olarak açılacak ve yeni bir “parse_page” değişkeni girilmelidir. Bu, Olx sayfasını bir Nokogiri nesnesi olarak döndürür.

Devam edin ve aynı klasörde 'cars.html' adında bir HTML dosyası oluşturun ve parse_page komutunun sonuçlarını bu dosyaya kopyalayıp yapıştırın. Bu biçimlendirilmiş HTML verileri daha sonra başvurmak için kullanışlı olacaktır.

Bir sonraki adıma başlamadan önce terminalinizdeki Pry'dan çıkın.

Adım 5: Veri Ayrıştırma

Veri ayrıştırma, kodlamanın yanı sıra temel bir programlama bilgisi gerektirir. Tüm araba listelerinin başlık metinlerini çıkarmak istediğiniz için, cars.html dosyası çapraz kontrolde kullanışlı olacaktır. Klasördeki önemli öğeleri bulun ve 'inspect element tool' aracını kullanarak incelemeler gerçekleştirin veya 'sayfa kaynak kodunu' da görüntüleyebilirsiniz.

Listelerin 'içerik' sınıf adına sahip bir div içinde olduğunu bulduğumuz için, aşağıdaki komutlar şunlardır :

parse_page.css('.content')

parse_page.css('.content').css('.row').css('.hdrlnk')

arabalar_dizisi

Komutu her çalıştırdığınızda kodlama düzenlerini ve dizileri kontrol edin. Ayrıştırma tamamlandığında, veri kümelerini CSV dosyalarına aktarmanız gerekecektir.

6. Adım: Veri dosyalarını CSV'ye dışa aktarma

6. adıma ulaştığınızda, kazıma işlemini başarıyla tamamlamış ve yapılandırılmamış verileri yapılandırılmış veri kümelerine dönüştürmüş olmalısınız. Şimdi terminale geri dönelim. Hâlâ içindeyseniz Pry'dan çıkın, böylece terminaliniz kazıma programını ve arabalar.html dosyasını içeren nokogiri_tutorial klasöründe olur. Şimdi aşağıdaki komutu yazın:

arabalara dokunun.csv

Şimdi, arabalar_dizisinden verileri kaydedebileceğiniz boş bir CSV dosyasıyla kalacaksınız. Artık bu verileri yeni CSV dosyamıza yazmak için basit bir komut dosyası yazabilirsiniz ve yapılandırılmış araba listeleme verileriniz bir CSV dosyasında bulunur. Bu, istediğiniz zaman ve istediğiniz şekilde işlemeyi ve manipüle etmeyi kolaylaştıracaktır.

Ayrılık düşünceleri

Umarım, bu size Ruby kullanarak bir web sitesini nasıl kazıyabileceğinize dair kaba bir resim vermiş olmalıdır. Bu yeni öğrenilen beceriyi kullanarak daha karmaşık ve zorlu siteleri keşfetme ve tarama zamanı.