BeautifulSoup ile Web Kazıyıcı Oluşturma – Tam Kılavuz
Yayınlanan: 2024-03-19BeautifulSoup, web verilerinin gücünden yararlanmak isteyenler için güçlü ve sezgisel bir araç olarak öne çıkıyor. Bu Python kütüphanesi, web kazıma amacıyla tasarlanmıştır ve web sayfalarından belirli bilgileri kolayca çıkarmanıza olanak tanır. Bu kılavuz, BeautifulSoup'u kullanarak bir web kazıyıcı oluşturma, güzelsoup ile web kazıma işlemi yapma konusunda size yol gösterecektir. ortamınızı ayarlamaktan ihtiyacınız olan verileri ayrıştırmaya ve çıkarmaya kadar.
BeautifulSoup ile Web Scraping'e Giriş
Web kazıma, World Wide Web'den programlı olarak bilgi toplama işlemidir. Veri madenciliği, bilgi toplama ve otomasyon görevlerinde kullanılan değerli bir tekniktir. Python'un istek kitaplığıyla eşleştirilen BeautifulSoup, web kazımaya basit bir yaklaşım sağlayarak onu her seviyedeki programcının erişimine sunar. BeautifulSoup ile Web Scrape çeşitli önkoşulları içerir.
Önkoşullar
BeautifulSoup'a dalmadan önce aşağıdaki ön koşulların karşılandığından emin olun:
- Python programlamaya ilişkin temel bilgiler.
- Python sisteminizde yüklü.
- HTML ve web sayfalarının yapısına aşinalık.
Ortamınızı Kurma
- Python'u Yükleyin : Sisteminizde Python'un kurulu olduğundan emin olun. Gelişmiş özellikleri ve desteği nedeniyle Python 3 önerilir.
- BeautifulSoup ve İstekleri Kurun : Komut satırınızı veya terminalinizi açın ve Python'un paket yükleyicisi pip'i kullanarak gerekli kitaplıkları yükleyin. Aşağıdaki komutları çalıştırın:
pip güzelsoup4'ü yükleyin
pip yükleme istekleri
İlk Web Kazıyıcınızı Oluşturma
BeautifulSoup ile ilk web kazıyıcınızı oluşturmak, web'den veri çıkarma dünyasına atılan heyecan verici bir adımdır. Bu kılavuz, web içeriğini verimli bir şekilde almak ve ayrıştırmak için Python ve BeautifulSoup kullanarak basit bir kazıyıcı kurmanın temelleri konusunda size yol gösterecektir. Web kazıma becerilerini uygulamak için tasarlanmış bir web sitesi olan “http://quotes.toscrape.com”dan alıntılar alacağız.
1. Adım: Python Ortamınızı Kurma
Bilgisayarınızda Python'un kurulu olduğundan emin olun. Ayrıca iki temel kitaplığa ihtiyacınız olacak: web sayfalarını edinmek için HTTP istekleri yapma istekleri ve HTML içeriğini ayrıştırmak için güzelsoup4.
Bu kütüphaneleri henüz kurmadıysanız Python'un paket yükleyicisi olan pip'i kullanarak bunu yapabilirsiniz. Terminalinizi veya komut isteminizi açın ve aşağıdaki komutları yürütün:
pip güzelsoup4'ü yükleyin
pip yükleme istekleri
Adım 2: Web Sayfasını Getirin
BeautifulSoup ile web kazımak için, kazımayı düşündüğünüz sayfanın HTML içeriğini getirecek bir Python betiği yazarak başlayın. Bu durumda “http://quotes.toscrape.com” adresinden alıntılar alacağız.
içe aktarma istekleri
# Kazımak istediğiniz web sitesinin URL'si
url = 'http://quotes.toscrape.com'
# Web sitesinin içeriğini almak için istek kitaplığını kullanın
yanıt = request.get(url)
# İsteğin başarılı olduğundan emin olun
yanıt.durum_kodu == 200 ise:
print(“Web sayfası başarıyla getirildi!”)
başka:
print("Web sayfası getirilemedi.")
Adım 3: HTML İçeriğini BeautifulSoup ile Ayrıştırın
Web sayfasını getirdikten sonra bir sonraki adım HTML içeriğini ayrıştırmaktır. BeautifulSoup bu görevi basitleştirir. Bir BeautifulSoup nesnesi oluşturun ve bunu yanıt metnini ayrıştırmak için kullanın.
bs4'ten BeautifulSoup'u içe aktarın
# Bir BeautifulSoup nesnesi oluşturun ve ayrıştırıcıyı belirtin
çorba = BeautifulSoup(response.text, 'html.parser')
# Yapıyı görmek için güzelleştirilmiş HTML'yi yazdırın
print(soup.prettiify())
Adım 4: HTML'den Veri Çıkarma
Artık HTML'yi ayrıştırdığınıza göre, ilgilendiğiniz verileri çıkarmaya başlayabilirsiniz. Sayfadaki tüm alıntıları çıkaralım.
# 'text' sınıfına sahip tüm <span> elemanlarını bulun ve üzerlerinde yineleyin
tırnak işaretleri = çorba.find_all('span', class_='text')
tırnak içinde alıntı için:
# Her <span>'ın metin içeriğini yazdırın
yazdır(alıntı.metin)
Bu kod parçası, sayfadaki alıntıları içeren sınıf metnine sahip tüm <span> öğelerini bulur ve bunların metin içeriğini yazdırır.
Adım 5: Daha İleriye Gitmek
Ayrıca alıntıların yazarları gibi diğer bilgileri de çıkarabilirsiniz:
# 'author' sınıfına sahip tüm <sma> elemanlarını bulun
yazarlar = çorba.find_all('küçük', sınıf_='yazar')
yazarlarda yazar için:
# Yazarın adını içeren her <küçük> metin içeriğini yazdırın
yazdır(yazar.metin)
Bu, çıkardığınız alıntılara karşılık gelen her yazarın adını yazdıracaktır.
En İyi Uygulamalar ve Hususlar
- Robots.txt'ye saygı gösterin : Kazımadan önce daima bir web sitesinin robots.txt dosyasını (örneğin, http://quotes.toscrape.com/robots.txt) kontrol edin. Size web sitesinin kazıma politikasını anlatır.
- İstisnaları Ele Alın : Kodunuzun ağ hatalarını veya geçersiz yanıtları sorunsuz bir şekilde ele aldığından emin olun.
- Hız Sınırlaması : Engellenmeyi önlemek için bir web sitesine gönderdiğiniz isteklerin sayısına dikkat edin.
- Yasal Hususlar : Web kazımanın yasal sonuçlarının farkında olun ve faaliyetlerinizin ilgili yasalara ve web sitesi hizmet şartlarına uygun olmasını sağlayın.
Çözüm
BeautifulSoup, sadeliği ve gücüyle, web'den veri çıkarma konusunda bir olasılıklar dünyasının kapılarını açıyor. İster analiz için veri topluyor olun, ister web sitelerini değişiklikler için izliyor olun, ister görevleri otomatikleştiriyor olun, BeautifulSoup ile web kazıma, programlama araç setinizde paha biçilmez bir beceridir. Web kazıma yolculuğunuza başladığınızda, etkileşimde bulunduğunuz web sitelerine saygı göstererek, sorumlu ve etik bir şekilde kazımayı unutmayın. Mutlu kazıma!