guzel dokuman hocam

Arkaplanı kr olalım diye sarı yaptın herhalde. Bilge insanlar konuşurlar çünkü syleyecek bir şeyleri vardır. Aptal insanlar konuşurlar çünkü bir şey sylemek zorundadırlar. Demokrasi, bir eğitim işidir. Eğitimsiz kitlelerle demokrasiye geçilirse oligarşi olur. Devam edilirse demagoglar türer. Demagoglardan da diktatrler çıkar. --Platon, Devlet

iyi iyi sonunda açmıssın konusunu :) neyseki tahribat bir bilişim sitesi olarak bu konuları çok seviyor. eline sağlık abi kan almasalar bari?

Yasal sorun olur mu bilmiyorum ama şyle bi yazı paylaştım. @holyone : şu syntax highlighter' ı ne zaman düzelteceksin acaba Link : https://0x6.pw/tsf-parser.html Selamlar arkadaşlar bu postta twitterda bir arkadaşımın paylaştığı linkte bulunan verileri çekeceğiz. Bu kod beni baya bi uğraştırdı. Aslında uğraştırmaması gerekiyordu fakat ilk olarak parse etmek için regex kullanmayı düşündüm. Fakat regex ile yeterince hızlı olmuyordu bu işlem xpath kullanmak istedim işte tüm sorunlar bundan sonra başladı. ncelikle çekeceğimiz linki vereyim. TSF. Org. TR Siteye girdiğinizde eğer bir külubü grüntülerseniz zel id atandığını greceksiniz. Yani aslında arkaplanda post ile verileri alırken 206 id li veriyi çekiyor fakat adress bar da bu 100545254 şeklinde gzükmekte. Eğer bunu farketmeseydim her dngüde 1 artan bir değişkenle işimi halletmeye çalışacaktım. Bu işlem epey uzun oluyordu :) Bende xpath ile o açılır menüde ki kulüplerin id lerini ve isimlerini aldım. Daha sonra bi def içinde gerekli olan sayfayı bulup ona gre dngüye devam ediyordu. Fakat bu büyük bir soruna yol açtı bunu sadece 1 kere yapıyordu. Yani 25 sayfa aldıysa sonradan yeniden sayfalar açılırsa ( <strong style="-sizing: border-;">Ki bazı kulüpler 2600 sayfa ) bunu es geçiyordu. Neyse kodumuzun ilk haline bakalım. import requests from lxml import html import adddb disct = def analyze : url = "https://lisans.tsf. org.tr/online/main/kulupliste/%s" %i ac = requests. get lx = html. fromstring global sayfaid sayfaid = lx. xpath('//div /a /text ') print if sayfaid : return False else: return True def multiplelist : try: http = "https://lisans.tsf. org.tr/online/main/kulupliste/%s/%s" % ac = requests. get lx = html. fromstring global isim, soyisim, dyil, il isim = lx. xpath('//table //tr/td /text ') soyisim = lx. xpath('//table //tr/td /text ') dyil = lx. xpath('//table //tr/td /text ') il = lx. xpath('//table //tr/td /text ') except ValueError: pass url = "https://lisans.tsf. org.tr/online/main/kulupliste" ac = requests. get lx = html. fromstring id = lx. xpath for i in id: if analyze False: multiplelist(i,"1") else: for u in sayfaid: if u "Son": analyze(sayfaid ) print multiplelist for i in range(len : isimsoyisim = isim +" "+soyisim disct = dyil , il for k, v in disct. items : adddb. dbadd(k, v , v ) ``` Grdüğünüz gibi burada analiz ettikten sonra artık değişen birşey olmuyordu. Üstelik bütün siteyi parse ettikten sonra db ye ekliyordu bu da herhangi bir hata da hiç bir verinin kaydedilemeyeceği anlamına geliyordu. Ama bundan nce bütün listelerin parse edilip tekrar aynı id ile birleştirilmesi Koddan anlayabilirsiniz zaten buda bir sürü soruna sebep oldu. Verilerin tam kaydedilmemesi üst üste gelmesi yani verilerde eksik bulunuyordu. Neyse kod şu hale update edildi ```python import requests from lxml import html import adddb def multiplelist : try: for i in range(1, number+1): http = "https://lisans.tsf. org.tr/online/main/kulupliste/%s/%s" % ac = requests. get lx = html. fromstring isim = soyisim = dyil = il = isim = lx. xpath('//table //tr/td /text ') soyisim = lx. xpath('//table //tr/td /text ') dyil = lx. xpath('//table //tr/td /text ') il = lx. xpath('//table //tr/td /text ') print for f in range(len : isimsoyisim = isim +" "+soyisim adddb. dbadd except ValueError: pass sayfasayisi = url = "https://lisans.tsf. org.tr/online/main/kulupliste" ac = requests. get lx = html. fromstring id = lx. xpath data = lx. xpath('/html/body//option/text ') for i in data: i = re. findall("( ). Sporcu", i) i = ''. join i = int //15 i = i+1 sayfasayisi. append for i, u in zip : multiplelist Bu da iyi hoştu ama netim sağlam olmadığı için arkadaşlarda çalıştırdığımızda verileri tam olarak çekmiyordu toplamda 9000 küsür veri çekiyordu. Büyük ihtimal sunucumuz belli bir request den sonra bizi drop ediyordu ve bizde çok az veri yazabiliyorduk. Neyse buna da bir çzüm bulduk. Daha nce Robin Dimyan bilmem ne :D adlı arkadaşın kodunda kullandığı tor reload kullandım. Test ettiğimde sorunsuz gzüküyordu fakat siteyi tam olarak çekemedim ne yazık ki. <strong style="-sizing: border-;">Neyse kodun son hali aşağıda ki şekildedir. import requests, socks, socket from subprocess import call from lxml import html import adddb, re def tor_reload : try: call print except: print socks. setdefaultproxy(socks. PROXY_TYPE_SOCKS5, '127.0.0.1', 9050) socket. socket = socks. socksocket def multiplelist : try: for i in range(1, number+1): http = "https://lisans.tsf. org.tr/online/main/kulupliste/%s/%s" % ac = requests. get lx = html. fromstring isim = soyisim = dyil = il = isim = lx. xpath('//table //tr/td /text ') soyisim = lx. xpath('//table //tr/td /text ') dyil = lx. xpath('//table //tr/td /text ') il = lx. xpath('//table //tr/td /text ') print for f in range(len : isimsoyisim = isim +" "+soyisim adddb. dbadd except ValueError: pass sayfasayisi = url = "https://lisans.tsf. org.tr/online/main/kulupliste" ac = requests. get lx = html. fromstring id = lx. xpath data = lx. xpath('/html/body//option/text ') for i in data: i = re. findall("( ). Sporcu", i) i = ''. join i = int //15 i = i+1 sayfasayisi. append for i, u in zip : multiplelist tor_reload Bu arada burada kodda sayfa sayısını toplamsporcu//15+1 ile alıyorum. Hiç değilse daha sağlıklı oluyor. Scriptte kullandığım diğer kodlar şu şekildedir. adddb. py import sqlite3 def dbadd : op = sqlite3. connect cs = op. cursor cs. execute("INSERT INTO tsflicense VALUES ", op.commit op. close Createdb. py import sqlite3 op = sqlite3. connect cs = op. cursor cs. execute("CREATE TABLE tsflicense ") op.commit op. close 0x656e tarafından 28/Tem/16 15:53 tarihinde düzenlenmiştir

iyi iyi sonunda açmıssın konusunu :) neyseki tahribat bir bilişim sitesi olarak bu konuları çok seviyor. eline sağlık abi http://www.leyladansonra.com/

Arkaplanı kr olalım diye sarı yaptın herhalde. ben yapmadım lan :D otomatik kendisi yapmış ben benim blogdan kopyaladım sadece buranın lanet olası bi syntax highlighterı var @nurulmac11 ne gibi hocam 0x656e tarafından 28/Tem/16 19:13 tarihinde düzenlenmiştir

eline saglik abi herhangi bir arama motorunda sonuclari parse eden bisey var mi elinde? black implies white, self implies other, life implies death.