İlan
Web kazıyıcılar genellikle yalnızca bir tarayıcıda bir web sitesini ziyaret ederek erişilebilen bilgileri ve verileri otomatik olarak toplar. Bunu bağımsız olarak yaparak, web kazıma komut dosyaları veri madenciliği, veri analizi, istatistiksel analiz ve çok daha fazlasında bir olasılıklar dünyası açar.
Web Scraping Neden Yararlıdır
Bilginin her zamankinden daha kolay erişilebilir olduğu bir gün ve yaşta yaşıyoruz. Okuduğunuz bu sözcükleri sunmak için kullanılan altyapı, insanların tarihinde hiç olmadığı kadar fazla bilgi, fikir ve haber kaynağıdır.
O kadar ki, aslında, en zeki kişinin beyni,% 100 verimliliğe ulaştı (birisi film yapmalı hakkında), ABD'de internette depolanan verilerin 1 / 1000'ini tutamayacak tek başına.
Cisco 2016 yılında tahmin edildi İnternetteki trafik 1.000.000.000.000.000.000.000 bayt veya bir sextillion bayt (devam et, sextillion'da kıkırdama) olan bir zettabaytı aştı. Bir zettabayt yaklaşık dört bin yıllık Netflix akışında. Bu, cesur bir okuyucu olarak, Office'i 500.000 kez durdurmadan baştan sona yayınlayacak olmanızla eşdeğer olurdu.
Tüm bu veriler ve bilgiler çok korkutucu. Hepsi doğru değil. Pek çoğu günlük yaşamla ilgili değildir, ancak giderek daha fazla cihaz bu bilgileri dünyanın dört bir yanındaki sunuculardan gözlerimize ve beynimize iletmektedir.
Gözlerimiz ve beyinlerimiz bu bilgilerin tamamını işleyemediğinden, web kazıma, internetten programlı olarak veri toplamak için kullanışlı bir yöntem olarak ortaya çıkmıştır. Web kazıma, yerel olarak kaydetmek için web sitelerinden veri çıkarma eylemini tanımlayan soyut terimdir.
Bir tür veri düşünün ve muhtemelen web'i kazıyarak toplayabilirsiniz. Emlak listeleri, spor verileri, bölgenizdeki işletmelerin e-posta adresleri ve hatta en sevdiğiniz sanatçının şarkı sözleri bile küçük bir senaryo yazarak aranabilir ve kaydedilebilir.
Tarayıcı Web Verilerini Nasıl Alır?
Web kazıyıcılarını anlamak için önce web'in nasıl çalıştığını anlamamız gerekecek. Bu web sitesine ulaşmak için, ya web tarayıcınıza “makeuseof.com” yazdınız ya da başka bir web sayfasından bir bağlantıyı tıkladınız (bize nerede, cidden bilmek istediğimizi söyleyin). Her iki durumda da, sonraki birkaç adım aynıdır.
İlk olarak, tarayıcınız girdiğiniz veya tıkladığınız URL'yi alacaktır (İpucu): URL'yi görmek için bağlantının üzerine gelin punk’ı almamak için tıklamadan önce tarayıcınızın alt kısmına tıklayın) ve bir sunucuya göndermek için bir "istek" oluşturun. Sunucu daha sonra isteği işleyecek ve bir yanıt gönderecektir.
Sunucunun yanıtı, web tarayıcınızın görüntüleme zevkiniz için bir web sayfası oluşturmasına izin vermek için gereken HTML, JavaScript, CSS, JSON ve diğer verileri içerir.
Web Öğelerini İnceleme
Modern tarayıcılar bize bu süreçle ilgili bazı detaylar veriyor. Windows'taki Google Chrome'da Ctrl + Üst Karakter + I veya sağ tıklayıp seçin denetlemek. Pencere daha sonra aşağıdakine benzer bir ekran sunar.
Sekmeli seçenekler listesi pencerenin üstünü çizer. Şu anda ilgi çekici Ağ sekmesi. Bu, aşağıda gösterildiği gibi HTTP trafiği hakkında ayrıntılar verecektir.
Sağ alt köşede HTTP isteği hakkında bilgi görüyoruz. URL beklediğimiz ve "yöntem" bir HTTP "GET" isteğidir. Yanıtın durum kodu 200 olarak listelenir, yani sunucu isteği geçerli olarak görür.
Durum kodunun altında, makeuseof.com sunucusunun halka açık IP adresi olan uzak adres bulunur. Müşteri bu adresi DNS protokolü Hızı Artırmak için DNS Ayarlarınızı DeğiştirmeDNS ayarlarınızı değiştirmek, günlük internet hızları üzerinde büyük etkisi olabilecek küçük bir değişikliktir. Bunu nasıl yapacağınız aşağıda açıklanmıştır. Daha fazla oku .
Sonraki bölüm, yanıtla ilgili ayrıntıları listeler. Yanıt başlığı yalnızca durum kodunu değil aynı zamanda yanıtın içerdiği veri veya içerik türünü de içerir. Bu durumda, standart bir kodlama ile “text / html” e bakıyoruz. Bu bize yanıtın web sitesini oluşturmak için tam anlamıyla HTML kodu olduğunu söyler.
Diğer Yanıt Türleri
Ayrıca, sunucular veri nesnelerini yalnızca web sayfasının işleyeceği HTML yerine GET isteğine yanıt olarak döndürebilir. Bir web sitesinin Uygulama Programlama Arayüzü (veya API) API Nedir ve Açık API'ler İnternet'i Nasıl Değiştirir?Bilgisayarınızdaki ve ziyaret ettiğiniz web sitelerindeki programların birbirleriyle nasıl "konuştuğunu" hiç merak ettiniz mi? Daha fazla oku tipik olarak bu tür bir değişim kullanır.
Ağ sekmesini yukarıda gösterildiği gibi inceleyerek, bu tür bir exchange olup olmadığını görebilirsiniz. Araştırırken CrossFit Açık Liderler Sıralaması tabloyu verilerle doldurma isteği gösterilir.
Yanıtın üzerine tıklandığında, web sitesini oluşturmak için HTML kodu yerine JSON verileri gösterilir. JSON'daki veriler, katmanlı ve anahatları belirlenmiş bir listede bir dizi etiket ve değerdir.
Manuel olarak HTML kodunu ayrıştırmak veya binlerce anahtar / değer çifti JSON'dan geçmek Matrix'i okumak gibidir. İlk bakışta anlamsız görünüyor. Manuel olarak kodunu çözmek için çok fazla bilgi olabilir.
Web Kazıyıcılar Kurtarmaya!
Şimdi, mavi hapı buradan almak için gitmeden önce, HTML kodunu manuel olarak çözmek zorunda olmadığımızı bilmelisiniz! Cehalet mutluluk değildir ve bu biftek dır-dir lezzetli.
Bir web kazıyıcı sizin için bu zor görevleri yerine getirebilir Scrapestack API, Web Sitelerini Veri için Kazımayı KolaylaştırırGüçlü ve uygun fiyatlı bir web kazıyıcı mı arıyorsunuz? Scrapestack API'yi başlatmak ücretsizdir ve birçok kullanışlı araç sunar. Daha fazla oku . Kazıma çerçeveleri Python, JavaScript, Node ve diğer dillerde mevcuttur. Kazımaya başlamanın en kolay yollarından biri Python ve Güzel Çorba kullanmaktır.
Bir Web Sitesini Python ile Kazıma
Başlangıçta Python ve BeautifulSoup yüklü olduğu sürece sadece birkaç satır kod alır. İşte bir web sitesinin kaynağını almak ve BeautifulSoup'un değerlendirmesine izin vermek için küçük bir komut dosyası.
bs4 ithalat BeautifulSoup dan. içe aktarma istekleri url = " http://www.athleticvolume.com/programming/" içerik = requests.get (url) çorba = BeautifulSoup (content.text) baskı (çorba)
Çok basit bir şekilde, bir URL'ye GET isteği yapıyoruz ve ardından yanıtı bir nesneye koyuyoruz. Nesnenin yazdırılması URL'nin HTML kaynak kodunu görüntüler. İşlem, sanki web sitesine manuel olarak gittik ve tıkladık gibi Kaynağı Görüntüle.
Özellikle, bu, her gün CrossFit tarzı egzersizler yayınlayan, ancak günde sadece bir tane yayınlayan bir web sitesidir. Her gün antrenmanı almak için sıyırıcıyı oluşturabilir ve daha sonra toplayıcı bir antrenman listesine ekleyebiliriz. Temel olarak, kolayca arayabileceğimiz egzersizlerin metin tabanlı bir tarihsel veritabanını oluşturabiliriz.
BeaufiulSoup'un büyüsü, yerleşik findAll () işlevini kullanarak tüm HTML kodunda arama yapma yeteneğidir. Bu özel durumda, web sitesi birkaç "sqs-block-content" etiketi kullanır. Bu nedenle, komut dosyasının tüm bu etiketler arasında dolaşması ve bizim için ilginç olanı bulması gerekir.
Ayrıca, bir dizi
bölümündeki etiketler. Komut dosyası, bu etiketlerin her birinden tüm metni yerel bir değişkene ekleyebilir. Bunu yapmak için komut dosyasına basit bir döngü ekleyin:
çorbadaki div_class için. findAll ('div', {'class': 'sqs-block-content'}): recordThis = p için yanlış div_class.findAll ('p'): p.text.upper () içindeki 'PROGRAM' ise: recordThis = record ise doğrudurThis: program + = p.text program + = '\ n'
Voila Bir web kazıyıcı doğar.
Kazıma Yukarı Kazıma
İlerlemek için iki yol var.
Web kazımayı keşfetmenin bir yolu, önceden oluşturulmuş araçları kullanmaktır. Web Kazıyıcı (harika bir isim!) 200.000 kullanıcıya sahiptir ve kullanımı kolaydır. Ayrıca, Ayrıştırma Merkezi kullanıcıların alıntılanan verileri Excel ve Google E-Tablolar'a aktarmasına olanak tanır.
Ayrıca, Web Kazıyıcı bir Chrome eklentisi bir web sitesinin nasıl oluşturulduğunu görselleştirmeye yardımcı olur. En iyisi, isme göre değerlendirmek OctoParse, sezgisel bir arayüze sahip güçlü bir kazıyıcı.
Son olarak, artık web kazıma işleminin arka planını bildiğinize göre, kendi küçük web kazıyıcıyı yükselterek sürün ve koş Bir Web Sitesinden Bilgi Almak İçin Temel Web Tarayıcısı Nasıl OluşturulurHiç bir web sitesinden bilgi yakalamak istediniz mi? Bir web sitesinde gezinmek ve ihtiyacınız olanı çıkarmak için bir tarayıcı nasıl yazacağınız aşağıda açıklanmıştır. Daha fazla oku kendi başına eğlenceli bir çaba.
Tom, yazma, kolej futbolu (go Gators!), CrossFit ve Oxford virgüllerine tutkuyla Florida'dan Yazılım Mühendisi (Florida Man'a bağırıyor).