Python ile URL Kontrol Scripti

0 Réponses 1 Vues
·
Participants
Auteur de la discussion #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:

CODE
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:

CODE
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]

Vous devez être connecté pour répondre.

Utilisateurs qui consultent cette discussion (Total: 1, Membres: 1, Invités: 0)
Total: 1 (membres: 1, invités: 0)
0 citations sélectionnées