
Edmund Richardson
0
3243
705
Web sıyırıcılar genellikle bir tarayıcıdaki web sitesini ziyaret ederek erişilen bilgileri ve verileri otomatik olarak toplar. Bunu özerk bir şekilde yaparak, web kazıma komut dosyaları veri madenciliği, veri analizi, istatistiksel analiz ve daha pek çok konuda bir dizi dünyayı açar..
Web Scraping Neden Kullanışlı?
Bilginin diğer zamanlardan daha kolay erişilebilir olduğu bir gün ve yaşta yaşıyoruz. Okuduğunuz bu sözcükleri vermek için kullanılan altyapı, insanlık tarihinin insanlarına hiç ulaşamadığından daha fazla bilgi, fikir ve haber kaynağıdır..
Öyle ki, aslında en zeki insanın beyninin% 100 verimliliğe (biri bunun hakkında bir film yapması gerekir) arttırdı, yine de yalnızca ABD’de internette depolanan verilerin 1 / 1000’ini tutamayacaktı..
Cisco, 2016 yılında internet trafiğinin bir zettabayt, yani 1.000.000.000.000.000.000.000 bayt veya bir sekstilyon bayt (aştığını, sekstilyonda kıkırdama) geçtiğini tahmin etti. Bir zettabayt, yaklaşık dört bin yıl boyunca Netflix'tir. Korkusuz bir okuyucunun 500.000 kez durmadan Office'i baştan sona aktarabilmenle aynı olurdu..
Image Credit: Cisco / Zettabyte Şafağı
Tüm bu veri ve bilgiler çok korkutucu. Hepsi doğru değil. Bunların çoğu günlük yaşamla ilgili değildir, ancak gittikçe daha fazla sayıda cihaz bu bilgiyi dünyadaki sunuculardan gözümüze ve beynimize ulaştırmaktadır..
Gözlerimiz ve beynimiz tüm bu bilgileri gerçekten idare edemediğinden, web kazıma, programlı olarak internetten 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 bir terimdir..
Bir tür veri düşünün ve muhtemelen web'i kazıyarak toplayabilirsiniz. Gayrimenkul listeleri, spor verileri, bölgenizdeki işletmelerin e-posta adresleri ve hatta en sevdiğiniz sanatçının sözleri bile küçük bir senaryo yazarak aranabilir ve kaydedilebilir..
Bir Tarayıcı Web Verilerini Nasıl Alır??
Web sıyırıcılarını anlamak için, web’in önce nasıl çalıştığını anlamamız gerekir. Bu siteye ulaşmak için ya yazdınız “makeuseof.com” web tarayıcınıza ekleyin veya başka bir web sayfasından bir bağlantıyı tıkladınız (bize nerede, ciddi olarak bilmek istediğimizi söyleyin). Her iki durumda da, bir sonraki iki adım aynı.
Öncelikle, tarayıcınız girdiğiniz veya tıkladığınız URL’yi alacak (Pro-tip: URL’yi tarayıcınızın alt kısmında görmek için bağlantının üzerine gelin). “istek” Bir sunucuya göndermek için Sunucu daha sonra isteği işleme koyacak ve geri 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ını sağlamak için gereken HTML, JavaScript, CSS, JSON ve diğer verileri içerir.
Web Öğelerini İnceleme
Modern tarayıcılar bu süreçle ilgili bize bazı detaylar veriyor. Windows’taki Google Chrome’da Ctrl + ÜstKrkt + I veya sağ tıklayıp seçin denetlemek. Pencere daha sonra aşağıdakine benzeyen bir ekran gösterecektir.
Sekmeli seçenek listesi, pencerenin üstünü gösterir. Şu anda ilgi çekici olan Ağ sekmesi. Bu, aşağıda gösterildiği gibi HTTP trafiği hakkında ayrıntılı bilgi verecektir..
Sağ alt köşede HTTP isteği hakkında bilgi görüyoruz. URL, beklediğimiz gibi ve “yöntem” bir HTTP “ALMAK” istek. Yanıttan gelen durum kodu 200 olarak listelenmiştir, bu, sunucunun isteği geçerli gördüğü anlamına gelir.
Durum kodunun altında, makeuseof.com sunucusunun halka açık IP adresi olan uzak adres bulunur. İstemci bu adresi DNS protokolü yoluyla alır Neden DNS Ayarlarını Değiştirme İnternet Hızınızı Artırır Neden DNS Ayarlarını Değiştirme Neden İnternet Hızını Artırır DNS ayarlarınızı değiştirmek günlük İnternet hızlarında büyük getiri sağlayabilen ufak ayarlardan biridir.. .
Bir sonraki bölüm cevapla ilgili detayları listeler. Yanıt başlığı yalnızca durum kodunu değil, aynı zamanda yanıtın içerdiği veri türünü de içerir. Bu durumda, biz bakıyoruz “text / html” standart bir kodlama ile. Bu bize cevabın kelimenin tam anlamıyla web sitesini oluşturan HTML kodu olduğunu söyler..
Diğer Cevap Türleri
Ek olarak, sunucular veri nesnelerini web sayfasının oluşturması için HTML yerine bir GET isteğine yanıt olarak döndürebilirler. Bir web sitesinin Uygulama Programlama Arabirimi (veya API) API Nedir ve Açık API'ler İnternet'i Nasıl Değiştirir? API Nedir, Açık API'ler Nasıldır? İnternet'i Nasıl Değiştirirsiniz Bilgisayarınızdaki programları ve ziyaret ettiğiniz web sitelerini nasıl konuştuğunu merak ettiniz mi? birbirlerine? genellikle bu tür değiş tokuşları kullanır.
Ağ sekmesini yukarıda gösterildiği gibi inceleyerek, bu tür bir değiş tokuş olup olmadığını görebilirsiniz. CrossFit Open Lider Tablosunu araştırırken, tabloyu verilerle doldurma isteği gösterilir..
Yanıtı tıklatarak, web sitesini oluşturmak için HTML kodu yerine JSON verileri gösterilir. JSON'daki veriler, katmanlı, anahatlı bir listede bir dizi etiket ve değerdir..
HTML kodunu elle ayrıştırmak veya JSON'un binlerce anahtar / değer çiftinden geçmek, Matrix'i okumak gibidir. İlk bakışta saçma sapan gibi görünüyor. El ile kodunu çözmek için çok fazla bilgi olabilir.
Kurtarma için Web Scrapers!
Şimdi mavi hapı burayı terketmek için sormadan önce, HTML kodunu elle deşifre etmek zorunda olmadığımızı bilmelisin! Cehalet mutluluk değildir ve bu biftek olduğu lezzetli.
Bir web kazıyıcı bu zor görevleri sizin için yerine getirebilir. Kazıma çerçeveleri Python, JavaScript, Node ve diğer dillerde mevcuttur. Kazımaya başlamanın en kolay yollarından biri Python ve Beautiful Soup kullanmaktır..
Python ile bir Web Sitesini Kazımak
Python ve BeautifulSoup yüklü olduğu sürece, yalnızca 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 betik.
bs4'ten içe aktarma BeautifulSoup içe aktarma isteklerinden url = "http://www.athleticvolume.com/programming/" content = requests.get (url) çorbası = BeautifulSoup (content.text) yazdır (çorba)
Çok basit bir şekilde, bir URL’ye bir GET isteği yapıyoruz ve ardından yanıtı bir nesneye koyuyoruz. Nesneyi yazdırmak, URL’nin HTML kaynak kodunu görüntüler. İşlem sanki manuel olarak web sitesine girdik ve tıkladık gibi. Kaynağı Görüntüle.
Spesifik olarak, bu her gün CrossFit tarzı egzersiz programı gönderen bir web sitesidir, ancak günde sadece bir tanedir. Her gün antrenman yapmak için sıyırıcımızı oluşturabilir ve daha sonra antrenmanları antrenman listesine ekleyebiliriz. Temel olarak, kolayca araştırabileceğimiz, metin tabanlı bir egzersiz programı veri tabanı oluşturabiliriz..
BeaufiulSoup'un büyüsü, yerleşik findAll () işlevini kullanarak tüm HTML kodlarını arayabilmektir. Bu özel durumda, web sitesi birkaç kullanır “OKS-blok muhtevası” etiketleri. Bu nedenle, komut dosyasının tüm bu etiketleri geçmesi ve bizim için ilginç olanı bulması gerekir..
Ek olarak, bir dizi
bölümdeki etiketler. Komut dosyası, bu etiketlerin her birindeki tüm metni yerel bir değişkene ekleyebilir. Bunu yapmak için, betiğe basit bir döngü ekleyin:
soup.findAll içindeki div_class için ('div', 'class': 'sqs-block-content'): recordThis = div_class.findAll ('p') 'deki p için yanlış: p.text içindeki' PROGRAM 'ise. upper (): recordThis = recordThis ise doğrudur: program + = p.text program + = '\ n'
Voila Bir web kazıyıcı doğdu.
Kazıma Ölçeklendirme
İlerlemek için iki yol var.
Web kazıma işlemlerini keşfetmenin bir yolu, zaten oluşturulmuş araçları kullanmaktır. Web Kazıyıcı (büyük isim!) 200.000 kullanıcısı vardır ve kullanımı kolaydır. Ayrıca, Ayrıştırma Hub, kullanıcıların alıntı verileri Excel'e ve Google E-Tablolara aktarmalarına izin verir.
Ek olarak, Web Kazıyıcı, bir web sitesinin nasıl oluşturulduğunu görselleştirmeye yardımcı olan bir Chrome eklentisi sağlar. Hepsinden iyisi, ismine göre yargılanan, sezgisel bir arayüze sahip güçlü bir kazıyıcı olan OctoParse.
Son olarak, artık web kazıma arka planını biliyorsunuz, tarama ve çalıştırma yapabilmek için kendi küçük web kazıyıcılarınızı yükselterek, Bir Web Sitesinden Bilgi Çekmek İçin Temel Bir Web Tarayıcı Nasıl Oluşturulur? Web sitesi Hiç bir web sitesinden bilgi almak istediniz mi? Web sitesinde gezinmek ve ihtiyacınız olanı çıkarmak için bir tarayıcı yazabilirsiniz. kendi başına eğlenceli bir çaba.