Giriş
Python'un web sayfalarından veri çekme ve bu veriyi analiz etme yetenekleri, özellikle metin ve dil işleme alanında oldukça güçlüdür. Günümüzde, bir web sitesinin içeriklerini anlamak, sıklıkla kullanılan kelimeleri belirlemek veya anahtar kelime yoğunluğunu ölçmek gibi ihtiyaçlar artış göstermektedir. Bu noktada, Python'un sunduğu çeşitli kütüphaneler ve araçlar, işlemi hem kolay hem de etkili hale getirir.
Web Sayfası Verisi Çekme
İlk adım, belirli bir web sayfasının içeriğine ulaşmaktır. Bu işlem için
requests kütüphanesini kullanabiliriz. Bu kütüphane, HTTP istekleri yapıp gelen sayfa içeriğini kolayca almayı sağlar. Örnek;
1234567
import requests
url = 'https://ornekwebsitesi.com'
response = requests.get(url)
if response.status_code == 200:
html_content = response.text
Burada, sayfa başarılı şekilde alınırsa
html_content değişkeninde sayfanın tüm HTML içeriği bulunur.
HTML'den Metin Temizleme ve Çekme
HTML içeriğinden yalnızca metni almak için
BeautifulSoup kütüphanesi tercih edilir. Bu kütüphane, HTML DOM yapısına erişip, gereksiz etiketleri atlayarak yalnızca kullanılabilir metni çıkarır.
12345
from bs4 import BeautifulSoup
soup = BeautifulSoup(html_content, 'html.parser')
metin = soup.get_text(separator=' ', strip=True)
Burada,
get_text() fonksiyonu, sayfadaki tüm metni tek bir string halinde verir.
Kelime Analizi ve Sıklık Hesabı
Elde edilen metni analiz etmek için doğal dil işleme (NLP) kütüphaneleri kullanılır. En temel analiz, kelime sıklığını ölçmektir. Bunun için
collections modülündeki
Counter veya
NLTK gibi kütüphaneler kullanılabilir.
12345678910111213
from collections import Counter
import re
[b]Küçük harfe çevir ve noktalama işaretlerini temizle[/b]
kelimeler = re.findall(r'\b\w+\b', metin.lower())
[b]Kelime sıklığını say[/b]
sıklık = Counter(kelimeler)
[b]En sık kullanılan 10 kelimeyi göster[/b]
en_sık = sıklık.most_common(10)
print(en_sık)
Bu kod, metindeki tüm kelimeleri küçük harfe çevirip, noktalama işaretleri olmadan ayırır ve en sık kullanılan 10 kelimeyi listeler.
Sonuç
Python, web sayfalarından veri çekme ve bu veriyi dilsel analizlere uygun hale getirme konusunda oldukça esnektir. Bu süreç, web siteleri üzerinde içerik analizi, SEO çalışmaları ve dil araştırmaları gibi birçok alanda kullanılabilir. İleri seviye analizler için
NLTK,
spaCy veya
TextBlob gibi kütüphanelerle dilbilgisi ve anlam analizi de gerçekleştirilebilir.
Yukarıdaki adımlar, temel bir kelime analizi sürecini kapsamaktadır ve detaylandırılarak farklı ihtiyaçlara göre uyarlanabilir.