Python ile URL Kontrol Scripti

0 Yanıt 0 Görüntülenme
·
Katılımcılar
Konuyu Açan #1
[B]
Günümüzde web tabanlı projelerde URL doğrulama, otomasyon ve güvenlik açısından kritik bir yer tutar. Python, sunduğu zengin kütüphaneler ve basit sözdizimiyle bu tür işlemleri gerçekleştirmek için ideal bir dil. Peki, Python kullanarak bir URL’nin geçerli olup olmadığını, erişilebilirliğini veya formatını nasıl kontrol edebiliriz? Bu soruları cevaplayan temel bir script’i adım adım inceleyelim.

İlk olarak, URL’nin temel formatını kontrol etmek için regex kullanabiliriz. Bu sayede, kullanıcıların veya sistemlerin girdiği URL’lerin yapısal olarak doğru olup olmadığını hızlıca saptayabiliriz. Örneğin, re kütüphanesi ile şu basit doğrulama yapılabilir:

KOD
123456789101112python
import re

def url_format_valid(url):
    pattern = re.compile(
        r'^(https?|ftp):\/\/[^\s/$.?#].[^\s]*$'
    )
    return re.match(pattern, url) is not None

[b]Kullanım[/b]
print(url_format_valid("https://example.com"))  # True
print(url_format_valid("htp://invalid-url"))   # False


Ancak format kontrolü tek başına yeterli değil. Bir URL’nin gerçekten erişilebilir olup olmadığını anlamak için, HTTP istekleri göndermek gerekir. Bu noktada, requests kütüphanesi devreye girer. Aşağıda, URL’ye GET isteği gönderip, alınan yanıtın durum koduna göre URL’nin erişilebilirliğini kontrol eden bir fonksiyon var:

KOD
12345678910111213python
import requests

def url_accessible(url):
    try:
        response = requests.get(url, timeout=5)
        return response.status_code == 200
    except requests.RequestException:
        return False

[b]Kullanım[/b]
print(url_accessible("https://google.com"))  # True
print(url_accessible("https://nonexistentwebsite.xyz"))  # False


Bu iki aşamayı birleştirerek, hem format hem de erişilebilirlik açısından kapsamlı bir URL kontrol scripti geliştirmek mümkün. Ayrıca, daha gelişmiş kontroller için DNS çözümlemesi veya bağlantı zaman aşımı ayarları gibi detaylar da eklenebilir. Bu temel script, otomasyon ve doğrulama süreçlerinde sıkça kullanılabilir ve ihtiyaçlara göre özelleştirilebilir.
[/BODY]

Yanıt vermek için giriş yapmış olmalısınız.

Bu konuyu görüntüleyen kullanıcılar (Toplam: 5, Üyeler: 5, Misafirler: 0)
Toplam: 5 (üyeler: 5, misafirler: 0)
0 alıntı seçildi