BeautifulSoup ile Web Kazıyıcı Oluşturma – Tam Kılavuz

Yayınlanan: 2024-03-19
İçindekiler gösterisi
BeautifulSoup ile Web Scraping'e Giriş
Önkoşullar
Ortamınızı Kurma
İlk Web Kazıyıcınızı Oluşturma
1. Adım: Python Ortamınızı Kurma
Adım 2: Web Sayfasını Getirin
Adım 3: HTML İçeriğini BeautifulSoup ile Ayrıştırın
Adım 4: HTML'den Veri Çıkarma
Adım 5: Daha İleriye Gitmek
En İyi Uygulamalar ve Hususlar
Çözüm

BeautifulSoup, 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
  1. Python'u Yükleyin : Sisteminizde Python'un kurulu olduğundan emin olun. Gelişmiş özellikleri ve desteği nedeniyle Python 3 önerilir.
  2. 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!