Ubuntu Türkiye

Yazılım => Programlama => Python => Konuyu başlatan: fghty - 18 Ocak 2013 - 20:31:31

Başlık: Python Düzenli İfadeler
Gönderen: fghty - 18 Ocak 2013 - 20:31:31
http://www.hattrick.org (http://www.hattrick.org) bu siteden bilgi çekmek için re modülünü kullanayım dedim ama bazı sorunlar çıktı. Mesela "<title></title>" gibi bazı taglardaki bilgiyi alamıyorum. Normalde sitede bu taglarda bilgi gözüküyor. Bu neden kaynaklanıyor olabilir?

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

url = "http://www.hattrick.org"

f = urllib.urlopen(url)

nesne=f.read()

for i in f:
    nesne = re.search('<title>(.*)</title>',i)
    if nesne:
        print nesne.group()


Bu kodda hiçbir bilgi dönmüyor. Nedeni neden kaynaklanıyor olabilir?
Başlık: Ynt: Python Düzenli İfadeler
Gönderen: egcodes - 18 Ocak 2013 - 21:33:48
Merhabalar benim az önce görmüşseniz eğer cevep yanlış olmuş adresi yanlış kopyaladım galiba.

Ama problem title tagdeki '\n' karakterlerinden kaynaklanmada galiba.


<title>
title yazi
</title>
Başlık: Ynt: Python Düzenli İfadeler
Gönderen: fghty - 19 Ocak 2013 - 00:10:17
Hocam sorunu tam anlayamadım. Kodda bi yeri eksik yazmışım şimdi orasını da ekledim.
Başlık: Ynt: Python Düzenli İfadeler
Gönderen: egcodes - 19 Ocak 2013 - 00:24:22
Evet onu görmüştüm söylemeyi unutmuşum ama yazdığın yine yanlış olmuş şöyle olacak.





nesne = re.search('<title>\\n.*</title>', f.read())







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


url = "http://www.hattrick.org"


f = urllib.urlopen(url)


nesne = re.search('<title>.*</title>', f.read())


if nesne:
        print nesne.group()



İkinci olarakta, çektiğin html'de <title> </title> arasında \n (satırbaşı-enter) karakterleri var. Sayfanın kaynağına bakıp görebilirsin o yüzden kod çalışmıyor onu çözmen gerek.
Başlık: Ynt: Python Düzenli İfadeler
Gönderen: fghty - 19 Ocak 2013 - 14:07:48
Anladım hocam HTMLParser ve re modülü beraber kullanarak deneyecem. Belki olur bu defa. :)