Mar 302015
 
5.358 views

Python ile web sitesinden başlıkları çekmek

İkinci dersimizde urllib ve re paketlerini kullanarak http://hurriyet.com.tr adresinden ana başlıkları nasıl indirebileceğimizi anlatıyorum. Bunlar, veri madenciliği ile ilgilenmeyi düşünen yeni python programcıları için yararlı olabilir.

python dersleri 02

Yaklaşık 10 satırlık bir kodlama ile gazetenin ana sayfasındaki tüm başlıkları kolayca indirebiliyoruz.

Ayrıca, Türkçe karakterlerin düzgün görünmesi için kullanılan küçük bir fonksiyonu da kodlarımıza ekledik.

Urllib paketi internet sitelerine ulaşıp, oradaki html kodlarını indirebilmemizi sağlayan fonksiyonlara sahip. Re paketi ise, ulaştığımız html kodlarınını uygun bir şekilde filtre edebilmemizi sağlıyor.

İnternet sitelerine farklı paketler ve yöntemlerle ulaşmak mümkün olsa da, re paketini (regular expressions – düzenli ifadeler) en ince ayrıntılarıyla tanımakta büyük yarar var.

Eğer düzenli ifadelere yeterince hakim değilseniz, aşağıdaki kaynak çok işinize yarayabilir. Düzenli ifadeleri nasıl kullanacağınızı bu siteden oyun oynar gibi ve çok kısa bir sürede öğrenebilirsiniz:

http://regexone.com/

İkinci ders kodlarımızın bitmiş hali aşağıda yer alıyor. Videoyu kodları inceledikten sonra izlemek, daha verimli olabilir.

# -*- coding: utf-8 -*-
import urllib
import re

site = "http://hurriyet.com.tr"

regex = '<span class="newsTitle">(.+?)</span>'
comp = re.compile(regex)

htmlkod = urllib.urlopen(site).read()

titles = re.findall(comp, htmlkod)
i=1
for title in titles:
    print str(i), title.decode("iso8859-9")
    i+=1

Bu kodları doğrudan çalıştırmanız da mümkündür:

python ders02.py

Beni izlemeyi unutmayın!

ahmet aksoy

 Bir yanıt bırakın

Bu HTML tagleri ve özellikleri kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(gerekli)

(gerekli)

This site uses Akismet to reduce spam. Learn how your comment data is processed.