


Scraping von unendlich scrollbaren Seiten mit der Schaltfläche „Mehr laden': Eine Schritt-für-Schritt-Anleitung
Hinken Ihre Scraper beim Versuch, Daten von dynamischen Webseiten zu laden? Sind Sie frustriert über endlose Schriftrollen oder diese lästigen „Mehr laden“-Schaltflächen?
Du bist nicht allein. Heutzutage implementieren viele Websites diese Designs, um die Benutzererfahrung zu verbessern – für Web-Scraper können sie jedoch eine Herausforderung darstellen.
Dieses Tutorial führt Sie durch eine anfängerfreundliche Anleitung zum Scrapen einer Demoseite mit der Schaltfläche Mehr laden. So sieht die Zielwebseite aus:
Am Ende erfahren Sie, wie Sie:
- Richten Sie Selenium für Web Scraping ein.
- Automatisieren Sie die Interaktion mit der Schaltfläche „Mehr laden“.
- Produktdaten wie Namen, Preise und Links extrahieren.
Lass uns eintauchen!
Schritt 1: Voraussetzungen
Stellen Sie vor dem Eintauchen folgende Voraussetzungen sicher:
- Python installiert: Laden Sie die neueste Python-Version von python.org herunter und installieren Sie sie, einschließlich PIP während der Einrichtung.
- Grundkenntnisse: Vertrautheit mit Web-Scraping-Konzepten, Python-Programmierung und der Arbeit mit Bibliotheken wie Requests, BeautifulSoup und Selenium.
Erforderliche Bibliotheken:
- Anfragen: Zum Senden von HTTP-Anfragen.
- BeautifulSoup: Zum Parsen des HTML-Inhalts.
- Selenium: Zur Simulation von Benutzerinteraktionen wie Schaltflächenklicks in einem Browser.
Sie können diese Bibliotheken mit dem folgenden Befehl in Ihrem Terminal installieren:
pip install requests beautifulsoup4 selenium
Bevor Sie Selenium verwenden, müssen Sie einen zu Ihrem Browser passenden Webtreiber installieren. Für dieses Tutorial verwenden wir Google Chrome und ChromeDriver. Sie können jedoch ähnliche Schritte für andere Browser wie Firefox oder Edge ausführen.
Installieren Sie den Web-Treiber
- Überprüfen Sie Ihre Browserversion:
Öffnen Sie Google Chrome und navigieren Sie zu Hilfe > Über Google Chrome aus dem Dreipunktmenü, um die Chrome-Version zu finden.
ChromeDriver herunterladen:
Besuchen Sie die ChromeDriver-Downloadseite.
Laden Sie die Treiberversion herunter, die zu Ihrer Chrome-Version passt.
ChromeDriver zu Ihrem Systempfad hinzufügen:
Extrahieren Sie die heruntergeladene Datei und legen Sie sie in einem Verzeichnis wie /usr/local/bin (Mac/Linux) oder C:WindowsSystem32 (Windows) ab.
Installation überprüfen
Initialisieren Sie eine Python-Datei scraper.py in Ihrem Projektverzeichnis und testen Sie, ob alles korrekt eingerichtet ist, indem Sie den folgenden Codeausschnitt ausführen:
from selenium import webdriver driver = webdriver.Chrome() # Ensure ChromeDriver is installed and in PATH driver.get("https://www.scrapingcourse.com/button-click") print(driver.title) driver.quit()
Sie können den obigen Dateicode ausführen, indem Sie den folgenden Befehl auf Ihrem Terminal ausführen:
pip install requests beautifulsoup4 selenium
Wenn der obige Code fehlerfrei läuft, öffnet er eine Browseroberfläche und öffnet die URL der Demoseite wie unten gezeigt:
Selenium extrahiert dann den HTML-Code und druckt den Seitentitel. Sie werden eine Ausgabe wie diese sehen -
from selenium import webdriver driver = webdriver.Chrome() # Ensure ChromeDriver is installed and in PATH driver.get("https://www.scrapingcourse.com/button-click") print(driver.title) driver.quit()
Dadurch wird bestätigt, dass Selenium einsatzbereit ist. Wenn alle Anforderungen installiert und einsatzbereit sind, können Sie mit dem Zugriff auf den Inhalt der Demoseite beginnen.
Schritt 2: Erhalten Sie Zugriff auf den Inhalt
Der erste Schritt besteht darin, den ursprünglichen Inhalt der Seite abzurufen, wodurch Sie eine grundlegende Momentaufnahme des HTML-Codes der Seite erhalten. Dies hilft Ihnen, die Konnektivität zu überprüfen und einen gültigen Ausgangspunkt für den Scraping-Prozess sicherzustellen.
Sie rufen den HTML-Inhalt der Seiten-URL ab, indem Sie eine GET-Anfrage mithilfe der Requests-Bibliothek in Python senden. Hier ist der Code:
python scraper.py
Der obige Code gibt den rohen HTML-Code aus, der die Daten für die ersten 12 Produkte enthält.
Diese schnelle Vorschau des HTML stellt sicher, dass die Anfrage erfolgreich war und Sie mit gültigen Daten arbeiten.
Schritt 3: Weitere Produkte laden
Um auf die verbleibenden Produkte zuzugreifen, müssen Sie auf der Seite programmgesteuert auf die Schaltfläche „Mehr laden“ klicken, bis keine Produkte mehr verfügbar sind. Da diese Interaktion JavaScript beinhaltet, verwenden Sie Selenium, um den Klick auf die Schaltfläche zu simulieren.
Bevor wir Code schreiben, überprüfen wir die Seite, um Folgendes zu finden:
- Die „Mehr laden“-Schaltflächenauswahl (load-more-btn).
- Das Div, das die Produktdetails enthält (Produktelement).
Sie erhalten alle Produkte, indem Sie weitere Produkte laden. Dadurch erhalten Sie einen größeren Datensatz, indem Sie den folgenden Code ausführen:
Load More Button Challenge to Learn Web Scraping - ScrapingCourse.com
Dieser Code öffnet den Browser, navigiert zur Seite und interagiert mit der Schaltfläche „Mehr laden“. Anschließend wird der aktualisierte HTML-Code extrahiert, der nun mehr Produktdaten enthält.
Wenn Sie nicht möchten, dass Selenium den Browser jedes Mal öffnet, wenn Sie diesen Code ausführen, bietet es auch Headless-Browser-Funktionen. Ein Headless-Browser verfügt über alle Funktionen eines echten Webbrowsers, jedoch über keine grafische Benutzeroberfläche (GUI).
Sie können den Headless-Modus für Chrome in Selenium aktivieren, indem Sie ein ChromeOptions-Objekt definieren und es wie folgt an den WebDriver Chrome-Konstruktor übergeben:
import requests # URL of the demo page with products url = "https://www.scrapingcourse.com/button-click" # Send a GET request to the URL response = requests.get(url) # Check if the request was successful if response.status_code == 200: html_content = response.text print(html_content) # Optional: Preview the HTML else: print(f"Failed to retrieve content: {response.status_code}")
Wenn Sie den obigen Code ausführen, startet Selenium eine Headless-Chrome-Instanz, sodass Sie kein Chrome-Fenster mehr sehen. Dies ist ideal für Produktionsumgebungen, in denen Sie keine Ressourcen auf der GUI verschwenden möchten, wenn Sie das Scraping-Skript auf einem Server ausführen.
Da nun der vollständige HTML-Inhalt abgerufen ist, ist es an der Zeit, spezifische Details zu jedem Produkt zu extrahieren.
Schritt 4: Produktinformationen analysieren
In diesem Schritt verwenden Sie BeautifulSoup, um den HTML-Code zu analysieren und Produktelemente zu identifizieren. Anschließend extrahieren Sie wichtige Details für jedes Produkt, wie Name, Preis und Links.
pip install requests beautifulsoup4 selenium
In der Ausgabe sollten Sie eine strukturierte Liste mit Produktdetails sehen, einschließlich Name, Bild-URL, Preis und Link zur Produktseite, etwa so -
from selenium import webdriver driver = webdriver.Chrome() # Ensure ChromeDriver is installed and in PATH driver.get("https://www.scrapingcourse.com/button-click") print(driver.title) driver.quit()
Der obige Code organisiert die rohen HTML-Daten in einem strukturierten Format, was die Arbeit mit den Ausgabedaten erleichtert und sie für die weitere Verarbeitung vorbereitet.
Schritt 5: Produktinformationen in CSV exportieren
Sie können die extrahierten Daten jetzt in einer CSV-Datei organisieren, was die Analyse oder Weitergabe erleichtert. Dabei hilft das CSV-Modul von Python.
python scraper.py
Der obige Code erstellt eine neue CSV-Datei mit allen erforderlichen Produktdetails.
Hier ist der vollständige Code für eine Übersicht:
Load More Button Challenge to Learn Web Scraping - ScrapingCourse.com
Der obige Code erstellt eine products.csv-Datei, die so aussehen würde:
import requests # URL of the demo page with products url = "https://www.scrapingcourse.com/button-click" # Send a GET request to the URL response = requests.get(url) # Check if the request was successful if response.status_code == 200: html_content = response.text print(html_content) # Optional: Preview the HTML else: print(f"Failed to retrieve content: {response.status_code}")
Schritt 6: Erhalten Sie zusätzliche Daten für Top-Produkte
Angenommen, Sie möchten die fünf teuersten Produkte identifizieren und zusätzliche Daten (z. B. Produktbeschreibung und SKU-Code) aus ihren einzelnen Seiten extrahieren. Sie können dies mit dem Code wie folgt tun:
from selenium import webdriver from selenium.webdriver.common.by import By import time # Set up the WebDriver (make sure you have the appropriate driver installed, e.g., ChromeDriver) driver = webdriver.Chrome() # Open the page driver.get("https://www.scrapingcourse.com/button-click") # Loop to click the "Load More" button until there are no more products while True: try: # Find the "Load more" button by its ID and click it load_more_button = driver.find_element(By.ID, "load-more-btn") load_more_button.click() # Wait for the content to load (adjust time as necessary) time.sleep(2) except Exception as e: # If no "Load More" button is found (end of products), break out of the loop print("No more products to load.") break # Get the updated page content after all products are loaded html_content = driver.page_source # Close the browser window driver.quit()
Hier ist der vollständige Code für eine Übersicht:
from selenium import webdriver from selenium.webdriver.common.by import By import time # instantiate a Chrome options object options = webdriver.ChromeOptions() # set the options to use Chrome in headless mode options.add_argument("--headless=new") # initialize an instance of the Chrome driver (browser) in headless mode driver = webdriver.Chrome(options=options) ...
Dieser Code sortiert die Produkte nach Preis in absteigender Reihenfolge. Dann öffnet das Skript für die fünf teuersten Produkte deren Produktseiten und extrahiert die Produktbeschreibung und SKU mit BeautifulSoup.
Die Ausgabe des obigen Codes sieht folgendermaßen aus:
from bs4 import BeautifulSoup # Parse the page content with BeautifulSoup soup = BeautifulSoup(html_content, 'html.parser') # Extract product details products = [] # Find all product items in the grid product_items = soup.find_all('div', class_='product-item') for product in product_items: # Extract the product name name = product.find('span', class_='product-name').get_text(strip=True) # Extract the product price price = product.find('span', class_='product-price').get_text(strip=True) # Extract the product link link = product.find('a')['href'] # Extract the image URL image_url = product.find('img')['src'] # Create a dictionary with the product details products.append({ 'name': name, 'price': price, 'link': link, 'image_url': image_url }) # Print the extracted product details for product in products[:2]: print(f"Name: {product['name']}") print(f"Price: {product['price']}") print(f"Link: {product['link']}") print(f"Image URL: {product['image_url']}") print('-' * 30)
Der obige Code aktualisiert die Datei „products.csv“ und enthält nun Informationen wie diese:
Name: Chaz Kangeroo Hoodie Price: Link: https://scrapingcourse.com/ecommerce/product/chaz-kangeroo-hoodie Image URL: https://scrapingcourse.com/ecommerce/wp-content/uploads/2024/03/mh01-gray_main.jpg ------------------------------ Name: Teton Pullover Hoodie Price: Link: https://scrapingcourse.com/ecommerce/product/teton-pullover-hoodie Image URL: https://scrapingcourse.com/ecommerce/wp-content/uploads/2024/03/mh02-black_main.jpg ------------------------------ …
Abschluss
Das Scrapen von Seiten mit unendlichem Scrollen oder „Mehr laden“-Schaltflächen kann schwierig erscheinen, aber die Verwendung von Tools wie Requests, Selenium und BeautifulSoup vereinfacht den Prozess.
In diesem Tutorial wurde gezeigt, wie Produktdaten von einer Demoseite abgerufen und verarbeitet und in einem strukturierten Format für einen schnellen und einfachen Zugriff gespeichert werden.
Alle Codeausschnitte finden Sie hier.
Das obige ist der detaillierte Inhalt vonScraping von unendlich scrollbaren Seiten mit der Schaltfläche „Mehr laden': Eine Schritt-für-Schritt-Anleitung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen











Python ist leichter zu lernen und zu verwenden, während C leistungsfähiger, aber komplexer ist. 1. Python -Syntax ist prägnant und für Anfänger geeignet. Durch die dynamische Tippen und die automatische Speicherverwaltung können Sie die Verwendung einfach zu verwenden, kann jedoch zur Laufzeitfehler führen. 2.C bietet Steuerung und erweiterte Funktionen auf niedrigem Niveau, geeignet für Hochleistungsanwendungen, hat jedoch einen hohen Lernschwellenwert und erfordert manuellem Speicher und Typensicherheitsmanagement.

Ist es genug, um Python für zwei Stunden am Tag zu lernen? Es hängt von Ihren Zielen und Lernmethoden ab. 1) Entwickeln Sie einen klaren Lernplan, 2) Wählen Sie geeignete Lernressourcen und -methoden aus, 3) praktizieren und prüfen und konsolidieren Sie praktische Praxis und Überprüfung und konsolidieren Sie und Sie können die Grundkenntnisse und die erweiterten Funktionen von Python während dieser Zeit nach und nach beherrschen.

Python ist in der Entwicklungseffizienz besser als C, aber C ist in der Ausführungsleistung höher. 1. Pythons prägnante Syntax und reiche Bibliotheken verbessern die Entwicklungseffizienz. 2. Die Kompilierungsmerkmale von Compilation und die Hardwarekontrolle verbessern die Ausführungsleistung. Bei einer Auswahl müssen Sie die Entwicklungsgeschwindigkeit und die Ausführungseffizienz basierend auf den Projektanforderungen abwägen.

Python und C haben jeweils ihre eigenen Vorteile, und die Wahl sollte auf Projektanforderungen beruhen. 1) Python ist aufgrund seiner prägnanten Syntax und der dynamischen Typisierung für die schnelle Entwicklung und Datenverarbeitung geeignet. 2) C ist aufgrund seiner statischen Tipp- und manuellen Speicherverwaltung für hohe Leistung und Systemprogrammierung geeignet.

PythonlistsarePartThestandardlibrary, whilearraysarenot.listarebuilt-in, vielseitig und UNDUSEDFORSPORINGECollections, während dieArrayRay-thearrayModulei und loses und loses und losesaluseduetolimitedFunctionality.

Python zeichnet sich in Automatisierung, Skript und Aufgabenverwaltung aus. 1) Automatisierung: Die Sicherungssicherung wird durch Standardbibliotheken wie OS und Shutil realisiert. 2) Skriptschreiben: Verwenden Sie die PSUTIL -Bibliothek, um die Systemressourcen zu überwachen. 3) Aufgabenverwaltung: Verwenden Sie die Zeitplanbibliothek, um Aufgaben zu planen. Die Benutzerfreundlichkeit von Python und die Unterstützung der reichhaltigen Bibliothek machen es zum bevorzugten Werkzeug in diesen Bereichen.

Zu den Anwendungen von Python im wissenschaftlichen Computer gehören Datenanalyse, maschinelles Lernen, numerische Simulation und Visualisierung. 1.Numpy bietet effiziente mehrdimensionale Arrays und mathematische Funktionen. 2. Scipy erweitert die Numpy -Funktionalität und bietet Optimierungs- und lineare Algebra -Tools. 3.. Pandas wird zur Datenverarbeitung und -analyse verwendet. 4.Matplotlib wird verwendet, um verschiedene Grafiken und visuelle Ergebnisse zu erzeugen.

Zu den wichtigsten Anwendungen von Python in der Webentwicklung gehören die Verwendung von Django- und Flask -Frameworks, API -Entwicklung, Datenanalyse und Visualisierung, maschinelles Lernen und KI sowie Leistungsoptimierung. 1. Django und Flask Framework: Django eignet sich für die schnelle Entwicklung komplexer Anwendungen, und Flask eignet sich für kleine oder hochmobile Projekte. 2. API -Entwicklung: Verwenden Sie Flask oder Djangorestframework, um RESTFUFFUPI zu erstellen. 3. Datenanalyse und Visualisierung: Verwenden Sie Python, um Daten zu verarbeiten und über die Webschnittstelle anzuzeigen. 4. Maschinelles Lernen und KI: Python wird verwendet, um intelligente Webanwendungen zu erstellen. 5. Leistungsoptimierung: optimiert durch asynchrones Programmieren, Caching und Code
