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