Hayatın Biriken Verileri
Verilere Yeterince İşkence Yaparsan Konuşurlar

YedeK Subaylık sinavina saçma python uygulaması

4/9/2007 | Kategori:PYTHON


Kara Kuvvetleri Komutanlığı(KKK)'nın askere gidecek en az fakülte mezunu insanları Yedek Subay
ihtiyacını karşılamak için yaptığı sınav üzerinde durdum. Yedek sabay olmak isteyen veya kısa
dönem askerlik yapmak isteyen insanlar için ufakda olsa bir bilgi olması için ilaveten benimde askere
gidiyor olup bilgi sıkıntımı ortadan kaldırmak adına ufak bir analiz yaptım ve istediğim bilgiye
ulaştım. Bunun için

1. Kendi internet sitesinde Yedek Subaylık sınavı diye bilinen sınav sonuçlarını veritabanına
attım
2. Sqlite kullarak yaptığım veritabanında istediğim bilgiye uygun tablo ve alanları ürettim
3. Basit SQL ******leri ile yararlı olabileceğine inandığım bilgileri topladım

Aşağıda python programlama dili ile interneten sonuçları aldığım ve bu sonuçları veritabanına
attığım programı görebilirsiniz
Not: Aşağıda gördüğünüz "KKK" Veritabındaki tablonun ismidir
İstenilen bilgi için aradığım sorular ve cevablar;

a) Toplam ne kadar kişi bu sınava girmiştir?
SQL ******i : SELECT COUNT(*) FROM KKK
Sonuç : 2088
b) Sınav sonucunda toplam ne kadar yedek subay alımı yapmışlardır.
SQL ******i : SELECT COUNT(STATUSU) FROM KKK
WHERE STATUSU="Yedeksubay" or "Ydsb.Öğretmen"
Sonuç : 999
c) Sınav sonucunda ne kadarı Yedek Subay, ne kadarı Yedek Subay Öğretmendir
SQL ******i : SELECT COUNT(STATUSU) FROM KKK
WHERE STATUSU="Yedeksubay"
SELECT COUNT(STATUSU) FROM KKK
WHERE STATUSU="Ydsb.Öğretmen"
Sonuç : 629'u Yedek Subay Öğretmen
290'ı Yedek Subay olarak seçilmiş
d) Sınava girip er olanların sayısı nedir.
SQL ******i : SELECT COUNT(STATUSU) FROM KKK
WHERE STATUSU="Er"
Sonuç : 1169
e) En çok hangi siniftan yedek subay alınmıştır ( Uzun dönem isteyenler için)
SQL ******i : select sinifi,count(sinifi) from kkk
where statusu="Yedeksubay"
group by sinifi
order by count(sinifi)
Sonuç : 69 kişi işe Piyade Komando
f) En az hangi siniftan yedek subay alınmiştir
SQL ******i :select sinifi,count(sinifi) from kkk
where statusu="Yedeksubay"
group by sinifi
order by count(sinifi)
Sonuç : 4 kişi ile piyade komando
g) En çok ve en az er hangi siniftan alınmıştır. ( Kısa dönem İsteyenler için )
SQL ******i : select sinifi,count(sinifi) from kkk
where statusu="Er"
group by sinifi
order by count(sinifi)
Sonuç : En çok er piyade ile 685 kişi
En az er ulaştırma ile 2 kişi
f) Bütün alımları gösterelim:
Yedek Subay olanların sıralması Ydsb.öğretmen Sıralaması
Ulaştırma--------------4 Piyade------>629
Deniz------------------6
HavaSvn.---------------8
İstihkam---------------8
Ordudonatım------------10
Muhabere---------------12
Tank-------------------12
Personel---------------19
Topçu------------------22
Piyade-----------------27
Jandarma Komando-------41
Levazım----------------52
Piyade Komando---------69

Er olanların sıralaması
Ulaştırma--------------2
İstihkam---------------3
Ordudonatım------------4
Topçu------------------5
Muhabere---------------6
HavaSvn.---------------8
Levazım----------------9
Tank-------------------9
SahilGüvenlik----------18
Hava-------------------41
Deniz------------------59
Jandarma---------------320
Piyade-----------------685

Herkese hayırlı tezkereler umarım işinize yarar


#!/usr/bin/env python
# -*- coding: UTF-8 -*-
from BeautifulSoup import BeautifulSoup
import re, urllib2, time
from pysqlite2 import dbapi2 as sqlite

con = sqlite.connect('veri.db')
cur = con.cursor()
i=10001
enson=12089
while i!=12089: #12089
a = str(i)
try:
b = urllib2.urlopen('http://www.kkk.tsk.mil.tr/Yedek_Subay/316/' + a+'.htm')
except urllib2.URLError, e:
if e.code==404:
print "Boyle bir sayfa yok AdayNo : %d"%(i)
i=i+1
continue
oku=b.read()
soup=BeautifulSoup(oku, fromEncoding="UTF-8")
try:
dogumyeriD = soup.findAll('td')[5].contents[0]
dogumyeriD = dogumyeriD.replace(' ', ' ')
kuvetiD = soup.findAll('td')[7].contents[0]
kuvetiD = kuvetiD.replace(' ', ' ').replace(' ', '')
sinifiD = soup.findAll('td')[9].contents[0]
sinifiD = sinifiD.replace(' ', ' ').replace(' ', '')
statusuD = soup.findAll('td')[11].contents[0]
statusuD = statusuD.replace(' ', ' ').replace(' ', '')
egitimyeriD = soup.findAll('td')[17].contents[0]
egitimyeriD = egitimyeriD.replace(' ', ' ').replace(' ', '')
# (null,dogumyeri,kuvveti,sinifi,statusu,egitimyeri)
#===============================================================================
# cur.execute('INSERT INTO kkk VALUES(null,?,?,?,?,?)',(dogumyeriD,kuvetiD,sinifiD
,statusuD,egitimyeriD))
# con.commit()
#===============================================================================
print "%d de %d kadar kişi var"%(i, enson-i)
except urllib2.URLError, e:
print "Hata olustu burayi atliyorum %d"%(i)
print e
i=i+1
continue
i=i+1

(0) Yorum yaz! Baglanti

|/|Sonraki Sayfa>>

@

    Kategorilerim

    Son Yazdıklarım

    Özel Arama