Python ile Durum Kodlarını İzleme ve Kontrol Etme - buyukbastech
Python_durum_kodu
Python Tool

Bugün Python kullanarak SEO projelerinizde işinize yarayabilecek bir kod paylaşacağız. Bu kod yapısı, özellikle kırık linklerin ve yönlendirmelerin kontrolünün yapılmasına yardımcı olacaktır. Python ile durum kodlarını analiz etmek istediğiniz bir web site haritası (site haritası) yolunu belirtmeniz yeterlidir.

 

Durum Kodu Neydi?

HTTP durum kodları, tarayıcı ve sunucu arasındaki iletişim sırasında ortaya çıkan olaylarda üç 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, geniş bir koleksiyona sahip, son derece işlevsel bir programlama dilidir. Her konfigürasyonunu, gereksiniminde gerekli kodları çağırarak kullanabilirsiniz. Hazırladığımız bu yapı için, gerekli kapasiteleri yüklemeniz gerekmektedir.

python-ile-durum-kodlarini-kontrol-etme-buyukbastech
Python ile Durum Kodlarını Kontrol Etme

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 - 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)

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir