Python ile URL Dosyası Oluşturmak

Python ile URL Dosyası Oluşturmak

{tocify} $title={Konu Başlıkları}

URL Nedir

URL (Uniform Resource Locator), Türkçe'de "Birleşik Kaynak Konumlayıcı" anlamına gelir ve internet üzerindeki bir kaynağın konumunu belirten bir adres sistemidir. İnternetteki herhangi bir dosya, web sayfası, resim, video veya başka bir içerik için benzersiz bir adres sağlar.

Bir URL, genellikle bir protokol (HTTP, HTTPS, FTP gibi), bir alan adı (örneğin: www.example.com) ve kaynağın konumunu belirten bir yol içerir. Örneğin, "https://www.example.com/index.html", bir web sitesinin ana sayfasının adresini belirtir.

URL'ler, internet tarayıcılarına, arama motorlarına ve diğer internet hizmetlerine belirli bir kaynağa erişim sağlamak için kullanılır. Kısacası, URL'ler, internet üzerindeki içeriklerin bulunduğu yerleri işaret eden adreslerdir.

URL Dosyası Nasıl Oluşturulur

Url dosyası oluşturmak için yeni bir dosyaya

[InternetShortcut]
URL=URL_Adresi

yukarıdaki metni yapıştırıp URL adresini(link) yazdıktan sonra dosyayı farklı kaydet deyip uzantısı .url yaparak kaydediyoruz. Ve URL dosyamız hazır, tıkladığımız zaman tarayıcımızda linki açabiliriz.

Kod Özellikleri

  • Kodu her çalıştırdığınızda bir kere kayıt yolu sorması
  • Kayıt yolunu kontrol ederek doğrulama yapması
  • URL'yi kontrol ederek doğrulama yapması
  • Dosya isimlerini otomatik olaral URL'den çekmesi
  • Dosya isimlerinde kullanılmayan karakterleri belirleyerek silmesi
  • Aynı isimdeki dosyaları tespit ederek üzerine yazılmasını veya tekrar url girerek ismini değiştirmenizi sağlamak

Python Kodunda Kullandığım Kütüphaneler

  1. os: Operating system modülü, dosya yolu işlemleri ve diğer sistem işlemleri için kullanılır.
  2. validators: Doğrulama işlemleri için kullanılır, kodda URL doğrulaması yapmaktadır.
  3. requests: Web sayfalarından veri çekmek için kullanılır.
  4. BeautifulSoup: Web sayfasının HTML veya XML kaynağını analiz etmek ve verileri kolayca çekmek için kullanılır. Bu kütüphane, bs4 paketinde bulunur.

Python Kodu

import os
import validators
import requests
from bs4 import BeautifulSoup

def create_url_file(filename, url, save_path):
    # Kullanılamaz karakterleri değiştirme
    invalid_chars = {'\\', '/', ':', '*', '?', '"', '<', '>', '|'}
    for char in invalid_chars:
        filename = filename.replace(char, '')
    
    file_content = "[InternetShortcut]\nURL=" + url
    file_path = os.path.join(save_path, filename + ".url")
    with open(file_path, "w") as file:
        file.write(file_content)
    print(f"---\n{filename}.url dosyası başarıyla oluşturuldu.\n---\n")

def is_valid_url(url):
    return validators.url(url)

def get_title_from_url(url):
    response = requests.get(url)
    soup = BeautifulSoup(response.content, "html.parser")
    return soup.title.string.strip() if soup.title else None

def is_file_exist(filename, save_path):
    file_path = os.path.join(save_path, filename + ".url")
    return os.path.exists(file_path)

def main():
    save_path = input("URL Dosyaları Kayıt Yolu: ")
    while True:
        if not os.path.isdir(save_path):
            print("Geçersiz dizin! Lütfen geçerli bir dizin girin.\n")
            save_path = input("URL Dosyaları Kayıt Yolu: ")
            continue
        break

    while True:
        url = input("URL: ")
        if not is_valid_url(url):
            print("Geçersiz URL! Lütfen geçerli bir URL girin.")
            continue
        
        default_filename = get_title_from_url(url)
        filename = input(f"Varsayılan Ad: '{default_filename}'\nVarsayılan için 'Enter' tuşuna basın ya da bir isim girin: ") or default_filename
        
        # Kullanılamaz karakterleri değiştirme
        invalid_chars = {'\\', '/', ':', '*', '?', '"', '<', '>', '|'}
        for char in invalid_chars:
            filename = filename.replace(char, '')
            
        if is_file_exist(filename, save_path):
            change_name = input("Bu dosya adı zaten var, üzerine yazmak istiyor musunuz? (evet/hayır): ")
            if change_name.lower() == 'hayır':
                print("URL'yi baştan girmeniz gerekmektedir.\n")
                continue
            else:
                if change_name.lower() == 'evet':
                    print(f"'{filename}' dosyasının üzerine yazılıyor.")
        create_url_file(filename, url, save_path)

if __name__ == "__main__":
    main()

Kaynaklar:

Chat GPT Mistral Ai FileInfo
Apphely

Merhabalar. Blogger üzerindeki sitelerime içerik üretip sizlerle paylaşıyorum. Neler mi var?
- Ücretsiz novel çevirileri, görsel çalışmalarım, ilgi alanım dahilince yazdığım blog yazıları...

Daha detaylı anlatmak gerekirse;
- Görsel olarak yapay zeka, piksel art, basit efektler ve daha fazlası... Blog yazıları dahilinde ise python içerikleri, renpy oyun motoru ile ilgili içerikler ve daha fazlası için yazmaya, içerik üretmeye devam edeceğim bir gelecek...

Yorum Gönder

Önceki İçerik Sonraki İçerik