Monday, June 27, 2011

Web Sayfalarindan Gorunen Metni Kazimak (Scraping)

Bir web sayfasindaki Turkce, Ingilizce kelimeleri almak icin Python uzerinde Beautiful Soup adinda bir paket var. "Gorunen metin" derken bir sayfada okunabilir olan, HTML etiketleri haricindeki kelimeleri kastediyoruz, istatistiki analiz icin mesela herhangi bir gunun "kelime dagarcigini" cekip cikarmak icin boyle kodlar gerekebilir.
import re
import urllib
import BeautifulSoup

keywords = ['script', '<b>', '\n']

def visible(element):
if element.parent.name in ['style', 'script', '[document]', 'head', 'title']:
return False
elif re.match('<!--.*-->', str(element)):
return False
return True

def tokenize_site(url):
html = urllib.urlopen(url).read()
soup = BeautifulSoup.BeautifulSoup(html)
texts = soup.findAll(text=True)
visible_texts = filter(visible, texts)
tmp = []
for x in visible_texts:
if (x not in keywords): tmp.append(x)
res = []
for x in tmp:
for xx in x.split():
res.append(xx)
return res

if __name__ == "__main__":
res = tokenize_site('[MEDYA SITE ISMI]')

No comments: