Hoşgeldiniz!

Eksik parçanızı buldunuz artık sizde paylaşılan bilgilerden yararlanabilecek, paylaşımda bulunabilecek ve özel mesaj gönderebileceksiniz..

Hemen Kayıt Olmak İçin Tıklayın!

unlimited sitemap generator (python) ücretsiz sitemap oluşturucu

4nk

Moderatör
Ticaret Puanı: 1 / 0 / 0
Katılım
12 Ocak 2023
Mesajlar
1,151
Çalışabilmesi için gerekli paketler

Python:
pip install requests
pip install pyfiglet
pip install beautifulsoup4


Python:
import requests
from bs4 import BeautifulSoup
from urllib.parse import urlparse, urljoin
import pyfiglet

ascii_banner = pyfiglet.figlet_format("GELİŞTİR")
print(ascii_banner)

IMAGE_EXTENSIONS = ('.jpg', '.jpeg', '.png', '.gif', '.bmp', '.svg', '.webp')
WEBPAGE_EXTENSIONS = ('.html', '.htm', '.php', '.asp', '.aspx', '.jsp', '.jspx', '.cgi', '.pl')

def get_links(url):
    try:
        response = requests.get(url)
        response.raise_for_status()
        soup = BeautifulSoup(response.text, 'html.parser')
        links = [a.get('href') for a in soup.find_all('a', href=True)]
        absolute_links = [urljoin(url, link) for link in links]
        return absolute_links
    except Exception as e:
        print(f"Hata: {str(e)}")
        return []

def is_valid_url(url):
    parsed_url = urlparse(url)
    return (parsed_url.path.endswith(WEBPAGE_EXTENSIONS) or not parsed_url.path or '.' not in parsed_url.path.split('/')[-1]) and not parsed_url.path.endswith(IMAGE_EXTENSIONS)

def crawl_site(root_url, domain, max_depth=-1):
    visited = set()
    queue = [(root_url, 0)]

    while queue:
        url, depth = queue.pop(0)
        if max_depth != -1 and depth > max_depth:
            continue
        if url in visited:
            continue
        visited.add(url)

        if domain not in url:
            continue

        if not is_valid_url(url):
            continue

        print(f"Processing: {url}")

        links = get_links(url)
        for link in links:
            if link not in visited and domain in link:
                queue.append((link, depth + 1))

    sitemap_filename = input("Sitemap dosyasının adını girin (örneğin, sitemap.xml): ")
    create_sitemap(root_url, visited, sitemap_filename)

def create_sitemap(start_url, visited, filename):
    with open(filename, 'w', encoding='utf-8') as file:
        file.write('<?xml version="1.0" encoding="UTF-8"?>\n')
        file.write('<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">\n')
        for url in visited:
            file.write(f'<url><loc>{url}</loc></url>\n')
        file.write('</urlset>\n')

if __name__ == "__main__":
    root_url = input("Web sitesi URL'sini girin: ")
    domain = input("Dahil etmek istediğiniz alan adını girin (örneğin, smsvar.com): ")
    max_depth = int(input("Derinlik sınırlamasını girin (tam tarama için -1): "))

    crawl_site(root_url, domain, max_depth)

Sitemap oluştururken çoğu websitesi ya para istemekte yada sınırlı sayıda url ye destek vermekte bu kod ile tamamen ücretsiz ve link sınırı olmadan istediğiniz siteyi tarayabilir ve sitemap dosyası oluşturabilirsiniz.
 
Üst