lima-city: Webhosting, Domains und Cloud
1 Pluspunkt 0 Minuspunkte

Wie kann ich URLs filtern, die bestimmte Dateiendungen bzw Query Parameter haben? Ich möchte z.B URLs wie

/login?to=*
/register?to=*

nicht indexieren.

for link in a_links:
	href = link.get('href')
	if href:
		full_url = urljoin(base_url, href)
		full_url, _ = urldefrag(full_url)

		# check unwanted files

		if full_url.endswith('/') and full_url != base_url.rstrip('/'):
			full_url = full_url.rstrip('/')

		if full_url not in visited_urls:
			print(f'    Adding {full_url} in the queue')
			queue.append(full_url)
		visited_urls.add(full_url)

return page_info
von  

1 Antwort

0 Pluspunkte 0 Minuspunkte

Hier ist eine Funktion wie du bestimmte Dateiendungen und Query Parameter filtern könntest.

# Liste unerwünschter Query Parameter und Dateiendungen
blocked_query_params = ['to','show','last','login','register','sort','start','by']
blocked_extensions = ['.pdf', '.jpg', '.png', '.zip', '.exe']

def is_blocked_url(url):
    parsed_url = urlparse(url)
    query_params = parse_qs(parsed_url.query)
    for param in query_params:
        if param in blocked_query_params:
            return True
    if any(url.endswith(ext) for ext in blocked_extensions):
        return True
    return False

Das könntest du dann in deine Schleife einbauen.

for link in a_links:
	href = link.get('href')
	if href:
		full_url = urljoin(base_url, href)
		full_url, _ = urldefrag(full_url)

		# check unwanted files
		if is_blocked_url(full_url):
			continue
			
		if full_url.endswith('/') and full_url != base_url.rstrip('/'):
			full_url = full_url.rstrip('/')

		if full_url not in visited_urls:
			print(f'    Adding {full_url} in the queue')
			queue.append(full_url)
		visited_urls.add(full_url)

return page_info
von (493 Punkte)  
Diese Community basiert auf dem Prinzip der Selbstregulierung. Beiträge werden von Nutzern erstellt, bewertet und verbessert – ganz ohne zentrale Moderation.

Wer hilfreiche Fragen stellt oder gute Antworten gibt, sammelt Punkte. Mit steigender Punktzahl erhalten Mitglieder automatisch mehr Rechte, zum Beispiel

  • Kommentare verfassen
  • Fragen und Antworten bewerten
  • Themen von Fragen bearbeiten
  • Fragen, Antworten und Kommentare bearbeiten
  • Inhalte ausblenden

So entsteht eine Plattform, auf der sich Qualität durchsetzt – getragen von einer engagierten Gemeinschaft.

2.3k Fragen

2.8k Antworten

261 Kommentare

13 Nutzer