Python ile Sitemap URL Çekme Yöntemleri

0 Ответы 11 Просмотры
·
Участники
Автор темы #1
Python, web sitesi taraması ve veri toplama işlemlerinde oldukça güçlü ve esnek bir dil. Bu bağlamda, sitemap dosyaları, bir web sitesinin tüm sayfalarının listesini içerdiği için, bu dosyalardan URL'leri otomatik olarak çekmek, büyük projelerde veya SEO çalışmalarında zaman kazandırıcı olabilir. Peki, Python kullanarak sitemap URL'lerini nasıl çekebiliriz? İşte detaylar:

İlk adım olarak, sitemap genellikle XML formatında olur ve sitenin kök dizininde veya robots.txt dosyasında referans gösterilir. Bu yüzden, öncelikle robots.txt dosyasını indirip, sitemap adreslerini bulmak gerekebilir.

Örneğin, robots.txt dosyasını çekip, sitemap URL'lerini listeye ekledikten sonra, sitemap XML dosyasını parse edebiliriz. Bunun için xml.etree.ElementTree modülü veya lxml gibi kütüphaneler kullanılabilir.

Örnek kod ile açıklayacak olursak:

КОД
123456789101112131415161718192021222324python  
import requests  
import xml.etree.ElementTree as ET  
  
[b]Robots.txt'ten sitemap URL'sini çekme[/b]
robots_url = 'https://ornekwebsite.com/robots.txt'  
robots_response = requests.get(robots_url)  
sitemap_urls = []  
  
if robots_response.status_code == 200:  
    for line in robots_response.text.splitlines():  
        if line.startswith('Sitemap:'):  
            sitemap_url = line.split(':', 1)[1].strip()  
            sitemap_urls.append(sitemap_url)  
  
[b]Sitemap'dan URL'leri çekme ve listeye ekleme[/b]
for sitemap_url in sitemap_urls:  
    response = requests.get(sitemap_url)  
    if response.status_code == 200:  
        root = ET.fromstring(response.content)  
        for url in root.findall('.//{http://www.sitemaps.org/schemas/sitemap/0.9}url'):  
            loc = url.find('{http://www.sitemaps.org/schemas/sitemap/0.9}loc').text  
            print(loc)  
  


Bu örnekte, ilk olarak robots.txt dosyasından sitemap URL'si alınır; sonra, sitemap XML'i parse edilerek, içindeki tag'leri aracılığıyla tüm sayfa URL'leri listelenir. Bu yöntem, özellikle büyük sitelerde otomasyon ve güncel veri toplama açısından oldukça etkilidir.

Elbette, farklı sitemap formatları veya çoklu sitemap indexleriyle karşılaşmak mümkün. Bu durumda, rekursif olarak index dosyalarını da parse etmek gerekebilir. Ayrıca, istekleri yavaşlatmak ve sunucuya yüklenmemek adına, uygun gecikmeler ve hata yönetimi eklenmelidir.

Bunlar dışında, farklı kütüphaneler veya framework'ler kullanarak, daha gelişmiş ve ölçeklenebilir çözümler inşa etmek de mümkündür. Python'un esnekliği sayesinde, bu işlemi farklı ihtiyaçlara uygun hale getirmek oldukça kolaydır.

Чтобы ответить, необходимо войти в систему.

0 цитат выбрано