import requests from bs4 import BeautifulSoup from urllib.parse import urlparse, parse_qs from collections import Counter import re def check_affiliate_link(url): # Beispielhafte Erkennung von Affiliate-IDs anhand üblicher Parameter (z. B. `aff_id`, `partner`, `ref`, etc.) affiliate_identifiers = ["aff_id", "partner", "ref", "aff", "affiliate"] parsed_url = urlparse(url) query_params = parse_qs(parsed_url.query) # Überprüft, ob einer der typischen Affiliate-Parameter im Link ist for key in query_params.keys(): if any(affiliate_id in key for affiliate_id in affiliate_identifiers): return True return False def get_links_from_domain(domain): try: response = requests.get(domain) soup = BeautifulSoup(response.text, "html.parser") links = [a.get("href") for a in soup.find_all("a", href=True)] return links except requests.RequestException as e: print(f"Fehler beim Abrufen der Domain {domain}: {e}") return [] def analyze_domains(domains): link_data = [] for domain in domains: print(f"Analysiere Domain: {domain}") links = get_links_from_domain(domain) for link in links: if check_affiliate_link(link): link_data.append((domain, link, "Affiliate Link")) else: link_data.append((domain, link, "Normaler Link")) return link_data def rank_domains_by_link_count(link_data): link_counter = Counter([entry[0] for entry in link_data]) return link_counter.most_common() # Beispiel-Domainliste domains = ["https://example.com", "https://example2.com"] # Schritt 1: Links analysieren link_data = analyze_domains(domains) # Schritt 2: Domains nach Linkanzahl sortieren domain_rankings = rank_domains_by_link_count(link_data) # Ergebnisse anzeigen print("Domain-Rankings nach Verlinkungsanzahl:") for domain, count in domain_rankings: print(f"{domain}: {count} Verlinkungen") print("\nAffiliate Links und normale Links:") for domain, link, link_type in link_data: print(f"{domain} - {link} - {link_type}")
Kommentare
Kommentar veröffentlichen