folder Tahribat.com Forumları
linefolder Python
linefolder Grapborsa | Günlük Borsa Verilerini Tutan Script [Python]



Grapborsa | Günlük Borsa Verilerini Tutan Script [Python]

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nick6
    0x656e
    0x656e's avatar
    Kayıt Tarihi: 19/Mayıs/2012
    Homo

    Aslında amacım günlük borsa verilerini db’de tutup ay sonu bunu grafiğe dökmekti fakat şuan ki haliyle paylaşmak istedim.

    Database oluşturma kısmında şirket isimlerini xpath ile çekemediğim için regex kullandım bu da scriptin yavaşlamasına sebep olmuş olabilir.

    Scripti yazma kısmında yardımlarından dolayı Yasin Yaman ve 0x7000‘a teşekkürlerimi sunarım.Trollüğe hep destek tam destek :)

    Github sayfası : https://github.com/ka1nsha/grapborsa

    #İsmi neden böyle? : Graph yazıcağım yerde grap yazmışım böyle daha iyi boşverin :)
    Screenshot_2015-07-27_13-08-15

    Kodlara gelirsek ilk kodlar şirket isimleriyle database oluşturmak için.

    #-*-coding:utf-8-*-
    
    import urllib.request
    import sqlite3
    import string
    import re
    
    import os
    kontrol = os.path.exists("db.db")
    if kontrol == True:
    
        pass
    else:
    
        basharfler = list(string.ascii_lowercase)
        for i in basharfler:
            ac = urllib.request.urlopen("http://uzmanpara.milliyet.com.tr/canli-borsa/?Harf="+i)
            ac = ac.read()
            p = re.compile('id=\"h_tr_id_([A-Z].+)\" ', re.MULTILINE)
            p = re.findall(p,ac.decode("cp1254"))
            ac = sqlite3.connect("db.db")
            cs = ac.cursor()
    
            for i in p:
    
                try:
                    cs.execute("CREATE TABLE %s(tarih text,oran text,durum text)" %i)
                    ac.commit()
    
                except sqlite3.OperationalError:
                    pass
                    print("hata")

    2.koda gelirsek o da database üzerinden tablodan şirket isimlerini seçip o sayfaya gidip gerekli verileri alıyor.


    #-*-coding:utf-8-*-
    import datetime
    
    import sqlite3
    import requests
    from lxml import html
    tarih = datetime.datetime.now().strftime("%Y-%m-%d")
    ac = sqlite3.connect("db.db")
    cs = ac.cursor()
    sorgu = cs.execute("SELECT * FROM sqlite_master where type='table' ")
    liste = []
    for i in sorgu:
    
        liste.append(i[1])
    cs.close()
    ac.close()
    for i in liste:
        firmaad = i
    
        ac = sqlite3.connect("db.db")
        cs = ac.cursor()
        url = requests.get("http://uzmanpara.milliyet.com.tr/borsa/hisse-senetleri/%s/" %firmaad)
        source = html.fromstring(url.text)
       
    
        fiyat = source.xpath('/html/body/div[4]/div[9]/div[3]/div[1]/span[1]/text()')
    
        degisim = source.xpath('/html/body/div[4]/div[9]/div[3]/div[1]/table/tbody/tr[1]/td[2]/span[1]/text()')
        fiyat = ''.join(fiyat)
        degisim = ''.join(degisim)
        firmaad = ''.join(firmaad)
        (firmaad,fiyat,degisim))
    
    
    
    
    
        cs.execute("INSERT INTO {} VALUES (?,?,?)".format(firmaad),(tarih,degisim,fiyat))
        ac.commit()
    cs.close()
    ac.close()







  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DuPi
    DuPi's avatar
    Kayıt Tarihi: 21/Ağustos/2005
    Erkek

    ellerine sağlık güzel uygulama kodlara bakarak artık diğer uygulama dillerindede yazabiliriz.


    Ne zaman birşey öğrenmek istesem, Birden Vaktim Kalmıyor ?
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YekteranBaymedir
    YekteranBaymedir's avatar
    Kayıt Tarihi: 10/Temmuz/2009
    Homo

    lxml'yi geliştiren adam o xpath'i görse kendini sikerek intihar ederdi

    http://paste.ubuntu.com/12272508/

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DrKill
    DrKill's avatar
    Kayıt Tarihi: 10/Mart/2004
    Erkek
    Daft bunu yazdı

    lxml'yi geliştiren adam o xpath'i görse kendini sikerek intihar ederdi

    http://paste.ubuntu.com/12272508/

    zuhahah olm nereden bulunuyonuz şu lafları...


    Bu imzayı her gördüğünüzde 4gb kotanızın 0,00000358559191226959228515625 azalmaktadır. Bilerek ve istenerek bu imza yapılmıştır. Amaç kotanızı sömürmektir
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nick6
    0x656e
    0x656e's avatar
    Kayıt Tarihi: 19/Mayıs/2012
    Homo
    Daft bunu yazdı

    lxml'yi geliştiren adam o xpath'i görse kendini sikerek intihar ederdi

    http://paste.ubuntu.com/12272508/

    Herkes kendi sikinden sorumlu isterse 100 kişiye siktirsin benim için sıkıntı yok :D

    bu arada gayet temiz kodmuş eyvallah :)

  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek
     

    edit.. bi deneme yaptim sadece :) ilgim yok ama paylasimin icin tesekkurler hoca, acik kaynaklari desteklemek lazim.

    unbalanced tarafından 04/Eyl/15 22:13 tarihinde düzenlenmiştir

    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Tayga
    Tayga's avatar
    Kayıt Tarihi: 21/Haziran/2015
    Erkek

    Eğer lazım olursa hisselerin tüm geçmiş verilerini çeken bi eklenti yazmıştım verebilirim.

     

  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nick6
    0x656e
    0x656e's avatar
    Kayıt Tarihi: 19/Mayıs/2012
    Homo
    Tayga bunu yazdı

    Eğer lazım olursa hisselerin tüm geçmiş verilerini çeken bi eklenti yazmıştım verebilirim.

     

    Borsayla işim olmuyor hocam @daft hocanın söylediği gibi götten proje uyduruyordum.

  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    RETRET
    RETRET's avatar
    Kayıt Tarihi: 16/Eylül/2007
    Erkek

    İlerlet böyle bırakma.


    ulan hepiniz yaşlanmışlınız size inat ben yaşlanmayacam saç da ektirecem pilates de yapacam, götümü yiyin.
Toplam Hit: 2169 Toplam Mesaj: 9
python günlük borsa