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
