Takip et

Nokogiri ile HTML İşleme Rehberi

Nokogiri ile HTML İşleme Rehberi

Merhaba! Bu rehberde, Ruby programlama dilinde HTML ve XML dosyalarını işlemek için kullanılan güçlü bir kütüphane olan Nokogiri’yi ele alacağız. Nokogiri, hem basit hem de karmaşık HTML/XML yapılarını kolayca parse etmenizi, sorgulamanızı ve manipüle etmenizi sağlar. Öncelikle, Nokogiri’nin kurulumundan başlayıp, ardından çeşitli örneklerle pratik kullanımını göstereceğiz. Bu rehber, hem başlangıç seviyesindeki hem de ileri seviyedeki geliştiriciler için faydalı bilgiler içerir.

Nokogiri Kurulumu

Nokogiri’yi kullanmaya başlamadan önce, RubyGems aracılığıyla sisteminize kurmanız gerekmektedir. Bunun için terminalinize veya komut satırınıza şu komutu girin:

gem install nokogiri

Kurulum tamamlandıktan sonra, Nokogiri’yi Ruby projelerinizde kullanmaya başlayabilirsiniz. Ardından, Nokogiri’nin sunduğu birçok özellik ve fonksiyon ile HTML belgesini manipüle etmeye başlayabiliriz.

HTML Parse Etme

Nokogiri’nin en temel özelliklerinden biri, HTML dosyalarını parse etmesidir. Aşağıdaki örnekte, bir HTML dosyasını parse edip, başlık etiketini ekrana yazdıracağız:

require 'nokogiri'

doc = Nokogiri::HTML(File.open("index.html"))
puts doc.title # Başlık etiketini yazdırır.

Bu kod, index.html dosyasını açar, parse eder ve title etiketinin içeriğini ekrana yazdırır. Eğer dosya okunabilir bir HTML dosyası değilse, bir hata alırsınız. Bu yüzden, dosyanın varlığından ve okunabilirliğinden emin olmanız gerekir. Burada, Nokogiri::HTML metodu ile HTML dosyasını parse ediyoruz. Bu, Nokogiri’nin en temel fonksiyonlarından biridir.

XPath ile Eleman Seçimi

Nokogiri, XPath kullanarak HTML belgesindeki belirli elemanları seçmenizi sağlar. XPath, XML ve HTML belgelerinde gezinmek için kullanılan bir dildir. Örneğin, tüm paragraf etiketlerini seçmek için şu kodu kullanabilirsiniz:

paragraphs = doc.xpath('//p')
paragraphs.each do |paragraph|
  puts paragraph.text
end

Bu kod, belgedeki tüm

etiketlerini bulur ve her birinin metin içeriğini ekrana yazdırır. XPath kullanımı, karmaşık HTML yapılarında spesifik elemanları hedeflemenizi kolaylaştırır. Daha karmaşık sorgulamalar için XPath’in gücünden yararlanabilirsiniz.

CSS Seçiciler ile Eleman Seçimi

Nokogiri, CSS seçicileri kullanarak da eleman seçimi sağlar. Bu, özellikle HTML’i anlamak daha kolay olanlar için daha sezgisel bir yöntem olabilir. Örneğin, class’ı “uyari” olan tüm div elemanlarını seçmek için şu kodu kullanabilirsiniz:

warnings = doc.css('div.uyari')
warnings.each do |warning|
  puts warning.text
end

Bu, CSS seçicileri ile eleman seçmenin kolaylığını gösteren bir örnektir. Bu, XPath’e alternatif bir yöntem olarak kullanılabilir ve bazı durumlarda daha okunaklı ve anlaşılır olabilir. Dolayısıyla, ihtiyacınıza göre XPath veya CSS seçicilerini tercih edebilirsiniz. İki yöntem de Nokogiri tarafından desteklenmektedir.

Nokogiri ile Web Scraping

Nokogiri, web scraping (web sayfalarından veri toplama) için de kullanılabilir. Örneğin, bir web sayfasından tüm linkleri çekmek için şu kodu kullanabilirsiniz:

require 'open-uri'

url = 'https://www.fatihsoysal.com' # Kendi sitenize link verin
doc = Nokogiri::HTML(URI.open(url))
links = doc.css('a')
links.each do |link|
  puts link['href']
end

Bu kod, belirtilen URL’deki web sayfasını açar, parse eder ve tüm etiketlerinin href özniteliklerini ekrana yazdırır. Ancak, web scraping yaparken, web sitesinin robot.txt dosyasına ve kullanım koşullarına uymanız önemlidir. Aksi takdirde, web sitesi sahibi tarafından engellenebilirsiniz. Bu konuya dikkat etmeniz çok önemlidir.

Umarım bu rehber, Nokogiri kütüphanesini daha iyi anlamanıza yardımcı olmuştur. Daha fazla bilgi için buraya ve kendi web sitemine göz atabilirsiniz. Nokogiri ile yapabileceğiniz çok daha fazla şey var; bu sadece başlangıç noktasıdır. Daha fazla özellik ve kullanım örneği için, Nokogiri’nin resmi dökümantasyonuna göz atabilirsiniz. Bol kodlamalar!

#Etiketler: Nokogiri, Ruby, HTML, XML, parsing, scraping, web scraping, XPath, CSS seçiciler, rehber, tutorial

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Exit mobile version