
Bugün sizlere Python ile Durum Kodlarını Kontrol Etme veya Python Kırık linkleri ve yönlendirmeleri kontrol etme gibi SEO Projelerinizde kullanabileceğiniz faydalı olacak bir kod yapısını sizlerle paylaşmak istedik. Python ile durum kodlarını analiz için tek yapmanız gereken analiz etmek istediğiniz sitenin sitemap yani site haritasının yolunu belirtmek olacaktır.
Durum Kodu Neydi?
HTTP durum kodları, istemci (veya tarayıcı) ile sunucu arasındaki aktarım işlemi sırasında neler olduğunu bize ifade eden üç haneli numaralardır.
Çalışma Mantığı;
- Tüm site haritası XML dosyalarını bulur.
- Tüm site haritası XML ayrıştırır.
- İçerisindeki URL ‘ler ayıklanır.
- Tüm URL ‘lerin durum kodlarının kontrolü yapar.
- Yönlendirme olup olmadığını kontrol eder.
- Excel olarak site-status-codes.xlsx olarak sizlere çıktı sunar.
Kütüphanelerin Yüklenmesi
Python çok sayıda kütüphaneye sahip oldukça fonksiyonlu bir yazılım dilidir. Her biri oldukça iyi olan kütüphaneleri kullanmak istediğinizde gerekli kodla çağrılarak işlem yapmanız gerekiyor. Bu hazırladığım yapı için yüklenmesi gereken kütüphaneleri yüklemeniz gerekmektedir.

Site Haritası İle Python Durum Kodu:
import requests
from bs4 import BeautifulSoup
from tqdm import tqdm
import pandas as pd
import openpyxl
import warnings
import colorama
from colorama import Fore, Back, Style
colorama.init()
print(Fore.GREEN)
print ("_________________________________________________________________________")
print ("# 360Stradigi.com - MS - Mesut ŞENER - Sitemap URL Status Code Checker")
print("# 1) Site Haritanızı sitemap içerisinde belirtin ve enter 'a basın")
print("# 2) tarama isleminden sonra site-status-codes.xlsx adında dosya oluşacak içerisinde kontrol edebilirsiniz.")
print ("_________________________________________________________________________")
warnings.filterwarnings("ignore")
print("!ÖRNEK -->: https://360stradigi.com/sitemap_index.xml ")
def check_site_status_codes(sitemap_url):
# Site haritasını indirin ve içeriğini ayrıştırın
response = requests.get(sitemap_url)
sitemap_content = response.text
soup = BeautifulSoup(sitemap_content, "lxml")
loc_tags = soup.find_all("loc")
# Tüm URL'leri bir listeye kaydedin
urls = [loc.text for loc in loc_tags]
# Alt site haritalarının URL'lerini de listeye ekleyin
for loc in loc_tags:
sub_sitemap_response = requests.get(loc.text)
sub_sitemap_content = sub_sitemap_response.text
sub_soup = BeautifulSoup(sub_sitemap_content, "lxml")
sub_loc_tags = sub_soup.find_all("loc")
sub_urls = [sub_loc.text for sub_loc in sub_loc_tags]
urls.extend(sub_urls)
# Tüm URL'leri dolaşın ve durum kodlarını, yönlendirme olup olmadığını,
# yönlendirilen URL'yi ve yönlendirme türünü alın
status_codes = []
redirected_urls = []
redirect_types = []
pbar = tqdm(total=len(urls)) # İlerleme çubuğunu oluşturun
for url in urls:
response = requests.get(url)
status_codes.append(response.status_code)
if response.history:
# URL'nin yönlendirme mevcuttur
redirected_url = response.url
redirect_type = response.history[0].status_code
else:
# URL'nin yönlendirme yoktur
redirected_url = url
redirect_type = None
redirected_urls.append(redirected_url)
redirect_types.append(redirect_type)
pbar.update(1) # İlerleme çubuğunu güncelle
pbar.close() # İlerleme çubuğunu kapat
# URL'ler, yönlendirilen URL'ler, yönlendirme türleri ve durum kodlarını bir data frame'e çevirin
df = pd.DataFrame({
"URL": urls,
"Redirected URL": redirected_urls,
"Redirect Type": redirect_types,
"Status Code": status_codes
})
# Excel dosyasını oluşturun ve verileri yazın
df.to_excel("site-status-codes.xlsx", index=False)
sitemap_url = input("Lütfen site haritasının URL'sini girin: ")
check_site_status_codes(sitemap_url)
Mesut Şener

