folder Tahribat.com Forumları
linefolder Python
linefolder Python Mechanize İle Resim Kaydetme



Python Mechanize İle Resim Kaydetme

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Claw
    Claw's avatar
    Kayıt Tarihi: 30/Temmuz/2015
    Erkek

    biraz daha kurcalayıp yapacağımı yaptım. Artık yazıyı okutabiliyorum ancak ki şöyle bir problem var yazının altına çizilmiş olan o çizgiyi de kodla kaldırınca bazı harflerin ve rakamların alt tarafı silik kalıyor dolayısıyla farklı algılıyor program. Bunun çözümü nasıl olur sizce ?-


    Real Eyes Realize Real Lies
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Böcüklerin Efendisi
    krypt
    krypt's avatar
    Kayıt Tarihi: 05/Mart/2004
    Erkek

    Hocam tesseract'la falan dene istersen. Modülü kullanmadım hic bilemiyorum o yüzden. 


    while (1<2)
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Claw
    Claw's avatar
    Kayıt Tarihi: 30/Temmuz/2015
    Erkek
    KrypT bunu yazdı

    Hocam tesseract'la falan dene istersen. Modülü kullanmadım hic bilemiyorum o yüzden. 

    tesseract ı kullandım zaten o alta öyle bi fonksiyon yazmlaıyım ki harfi bozmadna silicek çizgiyi.


    Real Eyes Realize Real Lies
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    coder2
    coder2's avatar
    Kayıt Tarihi: 15/Mart/2007
    Erkek

    Hocam bende python a yeni başladım , mümkünse kodlarınızı görmek isterim tabi sizin için sorun olmazsa


    Önceleri Kızlar Utanınca Kızarırdı Şimdilerde Kızarınca Utanıyorlar..
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Zork.
    torpedo_XL
    torpedo_XL's avatar
    Kayıt Tarihi: 21/Ağustos/2005
    Erkek
    Claw bunu yazdı
    KrypT bunu yazdı

    Hocam tesseract'la falan dene istersen. Modülü kullanmadım hic bilemiyorum o yüzden. 

    tesseract ı kullandım zaten o alta öyle bi fonksiyon yazmlaıyım ki harfi bozmadna silicek çizgiyi.

    Captchayı görmeden kimsenin kesin bir şey diyebileceğini sanmıyorum.

    Örnek bir görüntü at, ona göre neler yapılabilir bakalım.


    Bilge insanlar konuşurlar çünkü söyleyecek bir şeyleri vardır. Aptal insanlar konuşurlar çünkü bir şey söylemek zorundadırlar. Demokrasi, bir eğitim işidir. Eğitimsiz kitlelerle demokrasiye geçilirse oligarşi olur. Devam edilirse demagoglar türer. Demagoglardan da diktatörler çıkar. --Platon, Devlet                                                                                                                                                                                                                                                                                                                                                                                         
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Claw
    Claw's avatar
    Kayıt Tarihi: 30/Temmuz/2015
    Erkek
    torpedo_XL bunu yazdı
    Claw bunu yazdı
    KrypT bunu yazdı

    Hocam tesseract'la falan dene istersen. Modülü kullanmadım hic bilemiyorum o yüzden. 

    tesseract ı kullandım zaten o alta öyle bi fonksiyon yazmlaıyım ki harfi bozmadna silicek çizgiyi.

    Captchayı görmeden kimsenin kesin bir şey diyebileceğini sanmıyorum.

    Örnek bir görüntü at, ona göre neler yapılabilir bakalım.

    http://i.hizliresim.com/qERX2q.png orjinal captcha bu. benim çevirdiğim ise tesseract için arka plan siyah, yazılar beyaz bide o çizgiyide 19. px galiba siliyorum yani beyaz yapıyorum.

     

    @coder2 vallaha bende sağdan soldan ne bulursam onları kullanıyorum kafama yazıyorum mantığını paylaşırım kodları burada da tamamlanınca her şey :)


    Real Eyes Realize Real Lies
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    erdoganb
    erdoganb's avatar
    Banlanmış Üye
    Kayıt Tarihi: 11/Eylül/2009
    Erkek

    Linuxta vardı o işi yapan bi kütükhane. İstemeden işini kolaylaştırabilir.


    yardırmak bizim işimiz
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Zork.
    torpedo_XL
    torpedo_XL's avatar
    Kayıt Tarihi: 21/Ağustos/2005
    Erkek
    Claw bunu yazdı
    torpedo_XL bunu yazdı
    Claw bunu yazdı
    KrypT bunu yazdı

    Hocam tesseract'la falan dene istersen. Modülü kullanmadım hic bilemiyorum o yüzden. 

    tesseract ı kullandım zaten o alta öyle bi fonksiyon yazmlaıyım ki harfi bozmadna silicek çizgiyi.

    Captchayı görmeden kimsenin kesin bir şey diyebileceğini sanmıyorum.

    Örnek bir görüntü at, ona göre neler yapılabilir bakalım.

    http://i.hizliresim.com/qERX2q.png orjinal captcha bu. benim çevirdiğim ise tesseract için arka plan siyah, yazılar beyaz bide o çizgiyide 19. px galiba siliyorum yani beyaz yapıyorum.

     

    @coder2 vallaha bende sağdan soldan ne bulursam onları kullanıyorum kafama yazıyorum mantığını paylaşırım kodları burada da tamamlanınca her şey :)

    Hocam captcha çok zor bir şey değil ama alttaki çizgi yüzünden örnekteki karakterlerde 2 ve c sıkıntı çıakrtıyor. Alttaki çizgiyi sildiğimizde 2 yi ? algılıyor, alttaki çizgi durduğunda ise c yi algılamakta zorluk çekiyor.

    Bunun 2 farklı çözümü var. İlk çözüm, tesseracta tek tek öğretmemiz lazım bu durumlarda hangisi seçileceğini.

    İkinci çözüm ise, ben karmaşık işlere giremem botum hızlı olsun arada 3-5 captcha çözememesi de normal diyecen. Onun için de bu captchalar için genel bir kod yazıp izlemen lazım. Baktın 10 tanede 5-6 çözülüyor düzgün o zaman sal gitsin. Eğer botun hızlı çalışıyorsa zaten aradaki bu hatalar görmezden gelinebiliyor.

    Şöyle 2 dakikada kendi kullandığım genel capcha çözme mantığını seninki için değiştirdim.

    from PIL import Image
    from PIL import ImageEnhance
    from PIL import ImageOps
    import sys,os
    from pytesser import *
    
    im1 = Image.open('test.png')
    width, height = im1.size
    im2 = im1.resize((int(width*2), int(height*2)), Image.BICUBIC)
    im3 = im2.convert('RGB')
    im4 = ImageEnhance.Color(im3)
    im5 = im4.enhance(0.0)
    im6 = ImageEnhance.Contrast(im5)
    im7 = im6.enhance(100)
    im8 = im7.crop((45, 15, 155, 38))
    im9 = ImageOps.invert(im8)
    
    print image_to_string(im9)
    im9.save('debug.png'),
    os.system('debug.png')

     

    Sondaki 38 i 39 yaparsan çizgi kalır 38 de çizgi gider.

     

    Şimdi yazarken aklıma geldi. Şöyle de yapabilirsin. Eğer karakterler aşağı yukarı aynı konumlarda çıkıyorsa hep, tek tek karakterleri croplayıp daha sonra siyah zemin üzerine offsetli yerleştirebilirsin.

     

    torpedo_XL tarafından 27/Ağu/16 01:02 tarihinde düzenlenmiştir

    Bilge insanlar konuşurlar çünkü söyleyecek bir şeyleri vardır. Aptal insanlar konuşurlar çünkü bir şey söylemek zorundadırlar. Demokrasi, bir eğitim işidir. Eğitimsiz kitlelerle demokrasiye geçilirse oligarşi olur. Devam edilirse demagoglar türer. Demagoglardan da diktatörler çıkar. --Platon, Devlet                                                                                                                                                                                                                                                                                                                                                                                         
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Claw
    Claw's avatar
    Kayıt Tarihi: 30/Temmuz/2015
    Erkek
    torpedo_XL bunu yazdı
    Claw bunu yazdı
    torpedo_XL bunu yazdı
    Claw bunu yazdı
    KrypT bunu yazdı

    Hocam tesseract'la falan dene istersen. Modülü kullanmadım hic bilemiyorum o yüzden. 

    tesseract ı kullandım zaten o alta öyle bi fonksiyon yazmlaıyım ki harfi bozmadna silicek çizgiyi.

    Captchayı görmeden kimsenin kesin bir şey diyebileceğini sanmıyorum.

    Örnek bir görüntü at, ona göre neler yapılabilir bakalım.

    http://i.hizliresim.com/qERX2q.png orjinal captcha bu. benim çevirdiğim ise tesseract için arka plan siyah, yazılar beyaz bide o çizgiyide 19. px galiba siliyorum yani beyaz yapıyorum.

     

    @coder2 vallaha bende sağdan soldan ne bulursam onları kullanıyorum kafama yazıyorum mantığını paylaşırım kodları burada da tamamlanınca her şey :)

    Hocam captcha çok zor bir şey değil ama alttaki çizgi yüzünden örnekteki karakterlerde 2 ve c sıkıntı çıakrtıyor. Alttaki çizgiyi sildiğimizde 2 yi ? algılıyor, alttaki çizgi durduğunda ise c yi algılamakta zorluk çekiyor.

    Bunun 2 farklı çözümü var. İlk çözüm, tesseracta tek tek öğretmemiz lazım bu durumlarda hangisi seçileceğini.

    İkinci çözüm ise, ben karmaşık işlere giremem botum hızlı olsun arada 3-5 captcha çözememesi de normal diyecen. Onun için de bu captchalar için genel bir kod yazıp izlemen lazım. Baktın 10 tanede 5-6 çözülüyor düzgün o zaman sal gitsin. Eğer botun hızlı çalışıyorsa zaten aradaki bu hatalar görmezden gelinebiliyor.

    Şöyle 2 dakikada kendi kullandığım genel capcha çözme mantığını seninki için değiştirdim.

    from PIL import Image
    from PIL import ImageEnhance
    from PIL import ImageOps
    import sys,os
    from pytesser import *
    
    im1 = Image.open('test.png')
    width, height = im1.size
    im2 = im1.resize((int(width*2), int(height*2)), Image.BICUBIC)
    im3 = im2.convert('RGB')
    im4 = ImageEnhance.Color(im3)
    im5 = im4.enhance(0.0)
    im6 = ImageEnhance.Contrast(im5)
    im7 = im6.enhance(100)
    im8 = im7.crop((45, 15, 155, 38))
    im9 = ImageOps.invert(im8)
    
    print image_to_string(im9)
    im9.save('debug.png'),
    os.system('debug.png')

     

    Sondaki 38 i 39 yaparsan çizgi kalır 38 de çizgi gider.

     

    Şimdi yazarken aklıma geldi. Şöyle de yapabilirsin. Eğer karakterler aşağı yukarı aynı konumlarda çıkıyorsa hep, tek tek karakterleri croplayıp daha sonra siyah zemin üzerine offsetli yerleştirebilirsin.

     

    hocam skype varsa bi özelden pm alabilir miyim :) Şu kodu deniyim bu arada bide.


    Real Eyes Realize Real Lies
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Claw
    Claw's avatar
    Kayıt Tarihi: 30/Temmuz/2015
    Erkek

    20 deneme yaptım 20 sini yanlış buldu :(


    Real Eyes Realize Real Lies
Toplam Hit: 5494 Toplam Mesaj: 33
python bot mechanize yaramazlik