HTMLCopy 0.7 (win32api eklendi,buglar düzeltildi)

MuhammedTr768

Kıdemli Üye
7 Kas 2021
2,932
1,815
31
MyKrallife
logo.png

Merhabalar Bugün HTMLCopy 0.7'yi Tanıtacağım

(Korktuğum Şey Başıma Gelmedi Sürüm Kontrol Çalışıyor :D)

---YENİ ÖZELLİKLER---
Tkinter MessageBox Yerine Win32Api Kullanıldı
Buglar Düzeltildi
Version Kontrol Kodları Düzeltildi
Site Kodları Dosyaya Kaydedilirken Çıkan Boş Kodlar Kaldırıldı

Kullanımı
İlk Öncelikle Modülleri (win32api,requests,beautifulsoup4) Kurup kurmadığımızı soruyor
kurmadım'ı seçerseniz modülleri arkaplanda kurmaktadır. Sonrasında İse Sürüm Kontrolü
Yapıyor Eğer Eski Sürümü Kullanıyorsanız Uyarı Verecektir. Yeni sürüm çıktığı zaman bu şekilde
haberdar olabilirsiniz. Sonra size URL Girmenizi istiyor ve bağlanmaya çalışıyor. Bağlantı Durumunu
Sizlere gösterecektir. Sonrasında size kaydedilecek dosya ismi soruyor. Girdiğiniz zaman o dosyaya
HTML Kodlarını kaydedecektir.

Python:
import os
import sys
import time

header={"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.53 Safari/537.36"}

def b():
    print("Kopyalanmasını İstediğiniz URL'yi Girin")
    url = input("URL Gir:")
    r = requests.get(url,headers=header)
    if r.status_code == 200:
        win32api.MessageBox(0,"İşlem Başarılı. URL Doğrulandı Ve Bağlanıldı","HTMLCopy 0.7")
    elif r.status_code == 204:
        win32api.MessageBox(0,"İşlem Başarılı Fakat İçerik Yok. Devam Ediliyor","HTMLCopy 0.7")
    elif r.status_code == 301:
        win32api.MessageBox(0,"İçerik Kalıcı Olarak Taşınmış !","HTMLCopy 0.7")
        sys.exit()
    elif r.status_code == 302:
        win32api.MessageBox(0,"İçerik Geçici Olarak Taşınmış !","HTMLCopy 0.7")
        sys.exit()
    elif r.status_code == 400:
        win32api.MessageBox(0,"İçeriğe Ulaşılamıyor !","HTMLCopy 0.7")
        sys.exit()
    elif r.status_code == 404:
        win32api.MessageBox(0,"İçerik Bulunamadı !!!","HTMLCopy 0.7")
        sys.exit()
    elif r.status_code == 408:
        win32api.MessageBox(0,"Zaman Aşımına Uğradı/Bağlanılamadı","HTMLCopy 0.7")
        sys.exit()
    elif r.status_code == 502:
        win32api.MessageBox(0,"Geçersiz Ağ Geçidi !","HTMLCopy 0.7")
        sys.exit()
    else:
        win32api.MessageBox(0,'Bilinmeyen Bir Hata Oluştu !','HTMLCopy 0.7')
        sys.exit()
    time.sleep(5)
    s = BeautifulSoup(r.content,"html.parser")
    code = f"{s}"
    kdos = input("Kodlar Kaydedildi. Kaydedilecek HTML Dosya Adı Girin (Uzantısız):")
    open(f"{kdos}.html","x")
    try:
        file = open(f"{kdos}.html","a")
        file.write(f"{code}")
        file.close()
    except:
        win32api.MessageBox(0,"İşlem Tamamlanamadı !","HTMLCopy 0.7")
    win32api.MessageBox(0,"Dosya Kaydedildi !","HTMLCopy 0.7")
    print("Kodlara Bakmak İstiyorsan 1 Yaz Çıkmak İçin 2")
    soru = int(input("Seç:"))
    if soru == 2:
        sys.exit()
    elif soru == 1:
        print(code)
    else:
        win32api.MessageBox(0,'Ne Dediğini Anlamadım ?','HTMLCopy 0.7')
        sys.exit()

os.system('title HTML Copy')
print("Modüller Kurulacak (Önceden Kurmadıysanız Program Hatalı Çalışır)")
print("1-Ben Kurmadım Bekle Kurayım\n2-Ben Zaten Kurdum")
s = int(input("Seç:"))
if s == 1:
    os.system('py -3 -m pip install --upgrade pip >nul')
    os.system('py -3 -m pip install requests >nul')
    os.system('py -3 -m pip install BeautifulSoup4 >nul')
    os.system('py -3 -m pip install pywin32 >nul')
    import requests
    from bs4 import BeautifulSoup
    import win32api
    vercont = requests.get("https://htmlcopy-version-control.glitch.me/hcs.txt")
    time.sleep(3)
    if vercont.status_code != 200:
        win32api.MessageBox(0,"Versiyonunuz Günceldir","HTMLCopy 0.7")
    else:
        win32api.MessageBox(0,"Versiyonunuz Güncel Değildir !","HTMLCopy 0.7")
    b()
elif s == 2:
    import requests
    from bs4 import BeautifulSoup
    import win32api
    vercont = requests.get("https://htmlcopy-version-control.glitch.me/hcs.txt")
    time.sleep(3)
    if vercont.status_code != 200:
        win32api.MessageBox(0,"Versiyonunuz Günceldir","HTMLCopy 0.7")
    else:
        win32api.MessageBox(0,"Versiyonunuz Güncel Değildir Lütfen Güncelleyin","HTMLCopy 0.7")
    b()
Yeni Sürüm İçin Önerilerinizi Bekliyorum :)
 

Helmsys

Yazılım Ekibi Kıdemli
16 Mar 2022
1,492
1,649
Öncelikle tavsiyemi dinlediğin için kendi adıma çok teşekkür ederim.
Bence şöyle bir düzeltme daha getirilebilir. Kullanıcıya modüllerin indirilmesi sorulmasından ziyade modüllerin olup olmaması kontrol edilerek işlem yaptırılabilir.
Bütün modüller en baştaki satırlara yazılır bir try bloğunun içerisine alınır modül hatası yakalanıp os.system ile terminale yazıldığı gibi pip komutu yazdırılarak modüller indirilir.

Eline sağlık.
Devam...
 

MuhammedTr768

Kıdemli Üye
7 Kas 2021
2,932
1,815
31
MyKrallife
Öncelikle tavsiyemi dinlediğin için kendi adıma çok teşekkür ederim.
Bence şöyle bir düzeltme daha getirilebilir. Kullanıcıya modüllerin indirilmesi sorulmasından ziyade modüllerin olup olmaması kontrol edilerek işlem yaptırılabilir.
Bütün modüller en baştaki satırlara yazılır bir try bloğunun içerisine alınır modül hatası yakalanıp os.system ile terminale yazıldığı gibi pip komutu yazdırılarak modüller indirilir.

Eline sağlık.
Devam...
yeni sürümde ekleyeceğim hocam teşekkürler :love:
 

JohnWick51

Uzman üye
20 Mar 2022
1,867
770
28
El
logo.png

Merhabalar Bugün HTMLCopy 0.7'yi Tanıtacağım

(Korktuğum Şey Başıma Gelmedi Sürüm Kontrol Çalışıyor :D)

---YENİ ÖZELLİKLER---
Tkinter MessageBox Yerine Win32Api Kullanıldı
Buglar Düzeltildi
Version Kontrol Kodları Düzeltildi
Site Kodları Dosyaya Kaydedilirken Çıkan Boş Kodlar Kaldırıldı

Kullanımı
İlk Öncelikle Modülleri (win32api,requests,beautifulsoup4) Kurup kurmadığımızı soruyor
kurmadım'ı seçerseniz modülleri arkaplanda kurmaktadır. Sonrasında İse Sürüm Kontrolü
Yapıyor Eğer Eski Sürümü Kullanıyorsanız Uyarı Verecektir. Yeni sürüm çıktığı zaman bu şekilde
haberdar olabilirsiniz. Sonra size URL Girmenizi istiyor ve bağlanmaya çalışıyor. Bağlantı Durumunu
Sizlere gösterecektir. Sonrasında size kaydedilecek dosya ismi soruyor. Girdiğiniz zaman o dosyaya
HTML Kodlarını kaydedecektir.

Python:
import os
import sys
import time

header={"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.53 Safari/537.36"}

def b():
    print("Kopyalanmasını İstediğiniz URL'yi Girin")
    url = input("URL Gir:")
    r = requests.get(url,headers=header)
    if r.status_code == 200:
        win32api.MessageBox(0,"İşlem Başarılı. URL Doğrulandı Ve Bağlanıldı","HTMLCopy 0.7")
    elif r.status_code == 204:
        win32api.MessageBox(0,"İşlem Başarılı Fakat İçerik Yok. Devam Ediliyor","HTMLCopy 0.7")
    elif r.status_code == 301:
        win32api.MessageBox(0,"İçerik Kalıcı Olarak Taşınmış !","HTMLCopy 0.7")
        sys.exit()
    elif r.status_code == 302:
        win32api.MessageBox(0,"İçerik Geçici Olarak Taşınmış !","HTMLCopy 0.7")
        sys.exit()
    elif r.status_code == 400:
        win32api.MessageBox(0,"İçeriğe Ulaşılamıyor !","HTMLCopy 0.7")
        sys.exit()
    elif r.status_code == 404:
        win32api.MessageBox(0,"İçerik Bulunamadı !!!","HTMLCopy 0.7")
        sys.exit()
    elif r.status_code == 408:
        win32api.MessageBox(0,"Zaman Aşımına Uğradı/Bağlanılamadı","HTMLCopy 0.7")
        sys.exit()
    elif r.status_code == 502:
        win32api.MessageBox(0,"Geçersiz Ağ Geçidi !","HTMLCopy 0.7")
        sys.exit()
    else:
        win32api.MessageBox(0,'Bilinmeyen Bir Hata Oluştu !','HTMLCopy 0.7')
        sys.exit()
    time.sleep(5)
    s = BeautifulSoup(r.content,"html.parser")
    code = f"{s}"
    kdos = input("Kodlar Kaydedildi. Kaydedilecek HTML Dosya Adı Girin (Uzantısız):")
    open(f"{kdos}.html","x")
    try:
        file = open(f"{kdos}.html","a")
        file.write(f"{code}")
        file.close()
    except:
        win32api.MessageBox(0,"İşlem Tamamlanamadı !","HTMLCopy 0.7")
    win32api.MessageBox(0,"Dosya Kaydedildi !","HTMLCopy 0.7")
    print("Kodlara Bakmak İstiyorsan 1 Yaz Çıkmak İçin 2")
    soru = int(input("Seç:"))
    if soru == 2:
        sys.exit()
    elif soru == 1:
        print(code)
    else:
        win32api.MessageBox(0,'Ne Dediğini Anlamadım ?','HTMLCopy 0.7')
        sys.exit()

os.system('title HTML Copy')
print("Modüller Kurulacak (Önceden Kurmadıysanız Program Hatalı Çalışır)")
print("1-Ben Kurmadım Bekle Kurayım\n2-Ben Zaten Kurdum")
s = int(input("Seç:"))
if s == 1:
    os.system('py -3 -m pip install --upgrade pip >nul')
    os.system('py -3 -m pip install requests >nul')
    os.system('py -3 -m pip install BeautifulSoup4 >nul')
    os.system('py -3 -m pip install pywin32 >nul')
    import requests
    from bs4 import BeautifulSoup
    import win32api
    vercont = requests.get("https://htmlcopy-version-control.glitch.me/hcs.txt")
    time.sleep(3)
    if vercont.status_code != 200:
        win32api.MessageBox(0,"Versiyonunuz Günceldir","HTMLCopy 0.7")
    else:
        win32api.MessageBox(0,"Versiyonunuz Güncel Değildir !","HTMLCopy 0.7")
    b()
elif s == 2:
    import requests
    from bs4 import BeautifulSoup
    import win32api
    vercont = requests.get("https://htmlcopy-version-control.glitch.me/hcs.txt")
    time.sleep(3)
    if vercont.status_code != 200:
        win32api.MessageBox(0,"Versiyonunuz Günceldir","HTMLCopy 0.7")
    else:
        win32api.MessageBox(0,"Versiyonunuz Güncel Değildir Lütfen Güncelleyin","HTMLCopy 0.7")
    b()
Yeni Sürüm İçin Önerilerinizi Bekliyorum :)
Ellerine saglik
 

Helmsys

Yazılım Ekibi Kıdemli
16 Mar 2022
1,492
1,649
Aklıma bir tane daha fikir geldi.
Şimdi sitenin kodunu bir html dosyası oluşturup içerisine yazdırıyoruz ya. Bu yazdırıldığındaki biçemi hiç de html düzenine benzemiyor. O yüzden o biçemi koruması adına bs ile çektiğin sitenin verisini BeautifulSoup sınıfına ait prettify methodunu kullanarak deneyebilirsin.
bkz;

Python:
s = BeautifulSoup(r.content,"html.parser")
code = f"{s.prettify()}"
 

MuhammedTr768

Kıdemli Üye
7 Kas 2021
2,932
1,815
31
MyKrallife
Aklıma bir tane daha fikir geldi.
Şimdi sitenin kodunu bir html dosyası oluşturup içerisine yazdırıyoruz ya. Bu yazdırıldığındaki biçemi hiç de html düzenine benzemiyor. O yüzden o biçemi koruması adına bs ile çektiğin sitenin verisini BeautifulSoup sınıfına ait prettify methodunu kullanarak deneyebilirsin.
bkz;

Python:
s = BeautifulSoup(r.content,"html.parser")
code = f"{s.prettify()}"
Hocam zaten önceden prettify sınıfını kullanıyordum bu sürümde kaldırdım çünkü prettify in tek farkı doctype html kısmında boş kodlar yazıyor o yüzden kaldırdım. bazen hatalara sebep oluyor.
 

Alih78

Katılımcı Üye
26 May 2022
266
243
Merhaba, değişken ve fonksiyon isimlendirmeniz güzel olmamış. Kod yapısı da çok karışık. Kodları fonksiyonlara ayırıp öyle kullanabilirsiniz. Kodunuza yorum satırı ekleyip kodun ne yaptığını anlatırsanız kodunuz daha kolay anlaşılacaktır. Gerekli modülleri her koşulda ayrı ayrı tekrar import etmek yerine ilk başta import edebilirsiniz. Gerekli modülleri otomatik olarak indirebilirsiniz. Gui tasarımı yapabilirsiniz. Kodunuzun şuanki yapısıyla pek "proje" düzeyinde olduğunu sanmıyorum. Tabi herhangi biri kendisi bu kodları iki saniyede yazmak yerine sizin kodunuzu kullanır mı, bilmem.
 

MuhammedTr768

Kıdemli Üye
7 Kas 2021
2,932
1,815
31
MyKrallife
Merhaba, değişken ve fonksiyon isimlendirmeniz güzel olmamış. Kod yapısı da çok karışık. Kodları fonksiyonlara ayırıp öyle kullanabilirsiniz. Kodunuza yorum satırı ekleyip kodun ne yaptığını anlatırsanız kodunuz daha kolay anlaşılacaktır. Gerekli modülleri her koşulda ayrı ayrı tekrar import etmek yerine ilk başta import edebilirsiniz. Gerekli modülleri otomatik olarak indirebilirsiniz. Gui tasarımı yapabilirsiniz. Kodunuzun şuanki yapısıyla pek "proje" düzeyinde olduğunu sanmıyorum. Tabi herhangi biri kendisi bu kodları iki saniyede yazmak yerine sizin kodunuzu kullanır mı, bilmem.
yeni sürümde dikkat edeceğim teşekkürler :)
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.