Bei einem SEO-Check Ihrer Website kann es sein, dass Sie aufgefordert werden, leere strong- und bold-Tags zu entfernen. Damit sind Textformatierungen ohne Text gemeint, die als solche natürlich schwer im Text zu finden sind. Um dies zu tun, muss der Code der Seite analysiert werden, was bei einer umfangreichen Seite sehr aufwendig sein kann.
Das folgende Python-Skript verwendet Scrapy, um eine Webseite nach leeren strong- und bold-Tags zu durchsuchen. Es crawlt die angegebenen URLs, extrahiert diese leeren Tags, speichert sie in einer Liste und gibt am Ende eine Zusammenfassung der gefundenen Stellen aus.
import scrapy
class MySpider(scrapy.Spider):
name = "my_spider"
# Verhindert das Folgen auf verlinkte Seiten
allowed_domains = ['example.com']
start_urls = ['https://example.com']
# Eine Liste zur Speicherung der gefundenen Tags
found_empty_tags = []
def parse(self, response):
# Crawling-Seite zur Debug-Ausgabe
self.logger.info(f'Crawling page: {response.url}')
# Überprüfen, ob die Antwort eine HTML-Seite ist
if "text/html" in response.headers.get('Content-Type', b'').decode('utf-8'):
# Überprüfen auf leere <strong> und <b> Tags
empty_tags = response.xpath('//strong[not(normalize-space(.))] | //b[not(normalize-space(.))]')
# Falls leere Tags gefunden werden, diese speichern
if empty_tags:
found_on_page = {
'url': response.url,
'empty_tags': [tag.get() for tag in empty_tags]
}
self.found_empty_tags.append(found_on_page)
self.logger.info(f'Empty tags found: {found_on_page["empty_tags"]}')
# Crawle alle weiteren Links auf der Seite
for next_page in response.css('a::attr(href)').getall():
if next_page is not None:
yield response.follow(next_page, self.parse)
# Zusammenfassung nach dem Abschluss des Crawlings
def closed(self, reason):
self.logger.info('Summary of empty tags found:')
for entry in self.found_empty_tags:
self.logger.info(f'URL: {entry["url"]}')
self.logger.info(f'Empty tags: {entry["empty_tags"]}')
Die Stellen, an denen die gesuchten Tags gefunden wurden, werden vor der Zusammenfassung der Statistik angezeigt:
2024-10-03 20:53:36 [my_spider] INFO: Summary of empty tags found:
2024-10-03 20:53:36 [my_spider] INFO: URL: https://example.com/sub/
2024-10-03 20:53:36 [my_spider] INFO: Empty tags: ['<strong> </strong>']
Anaconda-Navigator Umgebung für Scrapy einrichten
Öffnen Sie Anaconda Navigator, navigieren Sie nach Environments → Create und vergeben Sie einen Namen für die Umgebung (z.B. Scrapy). Aktivieren Sie die Checkbox: Python und klicken Sie auf Create:

Klicken Sie auf die Schaltfläche Start ▹ und wählen Sie Open Terminal. Die Scrapy Umgebung wird in einer Konsole geladen. Installieren Sie das Scrapy Framework in der Umgebung mit folgendem Kommando:
$ conda install -c conda-forge scrapy
Das folgende Kommando erstellt ein neues Scrapy Projekt mit dem Namen web_crawler:
$ scrapy startproject web_crawler
Wechseln Sie in das Unterverzeichnis ./web_crawler/web_crawler/spiders und legen Sie dort ein Python-Script my_spider.py mit oben genannten Inhalt an. Passen Sie in den Zeilen 6 und 7 die gewünschte URL bzw. Domain an und führen Sie das Script aus:
$ scrapy crawl my_spider
![]()