Kendinizi sık sık web sitelerinden veri alırken buluyorsanız, muhtemelen süreci otomatikleştirmeyi düşünmelisiniz. Bazen "web kazıma" olarak adlandırılan süreç, resmi bir API veya besleme sağlamayan siteler için yaygın bir süreçtir. Elbette, getirmeye çalıştığınız site kullanılamıyorsa hiçbir yere varamazsınız.
Kendi sitenizi yönetiyorsanız, muhtemelen daha önce kapalı kalma süresiyle uğraşmak zorunda kalmışsınızdır. Sinir bozucu olabilir, ziyaretçilerinizi kaybetmenize ve sitenizin sorumlu olabileceği her türlü etkinliği kesintiye uğratmanıza neden olabilir. Bu gibi durumlarda, web sitenizin kullanılabilirliğini kolayca kontrol edebilmek için öder.
Python, komut dosyası yazmak için harika bir dildir ve özlü ancak okunabilir sözdizimi, bir site denetleyicisini uygulamayı basit bir görev haline getirir.
Kişiselleştirilmiş Web Sitesi Denetleyicinizi Oluşturma
Web sitesi denetleyicisi, aynı anda birden fazla web sitesini barındırmak için özel olarak yapılmıştır. Bu, artık umursamadığınız siteleri kolayca değiştirmenize veya gelecekte başlatacağınız siteleri kontrol etmeye başlamanıza olanak tanır. Denetleyici, daha fazlasını oluşturabileceğiniz ideal bir "iskelet uygulaması"dır, ancak web verilerini almak için temel bir yaklaşım gösterir.
Python'da Kitaplıkları İçe Aktarma
Projeyi başlatmak için içe aktarmalısınız. istekler Python ile kütüphane içe aktarmak işlev.
içe aktarmak istekler
İstekler kitaplığı, web siteleriyle iletişim kurmak için kullanışlıdır. HTTP istekleri göndermek ve yanıt verilerini almak için kullanabilirsiniz.
Web Sitesi URL'lerini Listede Depolayın
Kitaplığı içe aktardıktan sonra, web sitesi URL'lerini bir listede tanımlamalı ve saklamalısınız. Bu adım, web sitesi denetleyicisiyle kontrol edebileceğiniz birden çok URL'yi korumanıza olanak tanır.
içe aktarmak istekler
website_url = [
" https://www.google.co.içinde",
" https://www.yahoo.com",
" https://www.amazon.co.içinde",
" https://www.pipsnacks.com/404",
" http://the-internet.herokuapp.com/status_codes/301",
" http://the-internet.herokuapp.com/status_codes/500"
]
Değişken Web Sitesi URL'si URL'lerin listesini saklar. Listenin içinde, kontrol etmek istediğiniz her bir URL'yi ayrı bir dize olarak tanımlayın. Test etmek için koddaki örnek URL'leri kullanabilir veya kendi sitelerinizi hemen kontrol etmeye başlamak için bunları değiştirebilirsiniz.
Ardından, ortak kullanım için mesajları saklayın HTTP yanıt kodları. Bunları bir sözlükte tutabilir ve her mesajı ilgili durum koduna göre indeksleyebilirsiniz. Programınız daha iyi okunabilirlik için durum kodları yerine bu mesajları kullanabilir.
durumlar = {
200: "Web Sitesi Mevcuttur",
301: "Kalıcı Yönlendirme",
302: "Geçici Yönlendirme",
404: "Bulunamadı",
500: "İç Sunucu Hatası",
503: "Hizmet kullanılamıyor"
}
Web Sitesi Durumunu Kontrol Etmek İçin Bir Döngü Oluşturma
Her bir URL'yi sırayla kontrol etmek için listede dolaşmak web sitelerinden. Döngünün içinde, istek kitaplığı aracılığıyla bir istek göndererek her sitenin durumunu kontrol edin.
için url içinde Web Sitesi URL'si:
denemek:
web_response = request.get (url)
yazdır (url, durumlar[web_response.status_code])
hariç:
yazdır (url, durumlar[web_response.status_code])
Neresi:
- url için...URL listesi üzerinde yinelenir.
- url for döngüsünün her URL'yi atadığı değişkendir.
- dene/hariçistisnaları ele alır ortaya çıkabilir.
- web_response yanıtın durum kodunu içeren bir özellik sağlayan bir değişkendir.
Tüm Kod Parçacığı
Kodun tamamını tek seferde incelemeyi tercih ederseniz, referans için tam kod listesi burada.
içe aktarmak istekler
website_url = [
" https://www.google.co.içinde",
" https://www.yahoo.com",
" https://www.amazon.co.içinde",
" https://www.pipsnacks.com/404",
" http://the-internet.herokuapp.com/status_codes/301",
" http://the-internet.herokuapp.com/status_codes/500"
]durumlar = {
200: "Web Sitesi Mevcuttur",
301: "Kalıcı Yönlendirme",
302: "Geçici Yönlendirme",
404: "Bulunamadı",
500: "İç Sunucu Hatası",
503: "Hizmet kullanılamıyor"
}için url içinde Web Sitesi URL'si:
denemek:
web_response = request.get (url)
yazdır (url, durumlar[web_response.status_code])
hariç:
yazdır (url, durumlar[web_response.status_code])
Ve işte kodun bir örnek çalıştırması:
Python'un Web Kazımada Kodlama Yetenekleri
Python'un üçüncü taraf kitaplıkları, web'de kazıma ve HTTP aracılığıyla veri alma gibi görevler için idealdir.
Çeşitli türde görevleri gerçekleştirmek için web sitelerine otomatik istekler gönderebilirsiniz. Bunlar, haber başlıklarını okumayı, görüntüleri indirmeyi ve otomatik olarak e-posta göndermeyi içerebilir.