亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Heim Backend-Entwicklung Python-Tutorial Scraping von unendlich scrollbaren Seiten mit der Schaltfl?che ?Mehr laden': Eine Schritt-für-Schritt-Anleitung

Scraping von unendlich scrollbaren Seiten mit der Schaltfl?che ?Mehr laden': Eine Schritt-für-Schritt-Anleitung

Jan 13, 2025 pm 06:09 PM

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:

Demo web page for scraping

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

  1. überprüfen Sie Ihre Browserversion:
  2. ?ffnen Sie Google Chrome und navigieren Sie zu Hilfe > über Google Chrome aus dem Dreipunktmenü, um die Chrome-Version zu finden.

  3. ChromeDriver herunterladen:

  4. Besuchen Sie die ChromeDriver-Downloadseite.

  5. Laden Sie die Treiberversion herunter, die zu Ihrer Chrome-Version passt.

  6. 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:

Demo Page in Selenium Browser Instance

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!

Erkl?rung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Hei?e KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

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

Hei?e Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

PHP-Tutorial
1488
72
Polymorphismus in Pythonklassen Polymorphismus in Pythonklassen Jul 05, 2025 am 02:58 AM

Der Polymorphismus ist ein Kernkonzept in der objektorientierten Programmierung von Python-Objekte und bezieht sich auf "eine Schnittstelle, mehrere Implementierungen" und erm?glicht eine einheitliche Verarbeitung verschiedener Arten von Objekten. 1. Polymorphismus wird durch Umschreiben durch Methode implementiert. Unterklassen k?nnen übergeordnete Klassenmethoden neu definieren. Zum Beispiel hat die Spoke () -Methode der Tierklasse unterschiedliche Implementierungen in Hunde- und Katzenunterklassen. 2. Die praktischen Verwendungen des Polymorphismus umfassen die Vereinfachung der Codestruktur und die Verbesserung der Skalierbarkeit, z. 3. Die Python -Implementierungspolymorphismus muss erfüllen: Die übergeordnete Klasse definiert eine Methode, und die untergeordnete Klasse überschreibt die Methode, erfordert jedoch keine Vererbung derselben übergeordneten Klasse. Solange das Objekt dieselbe Methode implementiert, wird dies als "Ententyp" bezeichnet. 4. Zu beachten ist die Wartung

Erkl?ren Sie Python -Generatoren und Iteratoren. Erkl?ren Sie Python -Generatoren und Iteratoren. Jul 05, 2025 am 02:55 AM

Iteratoren sind Objekte, die __iter __ () und __next __ () Methoden implementieren. Der Generator ist eine vereinfachte Version von Iteratoren, die diese Methoden automatisch über das Keyword für Rendite implementiert. 1. Der Iterator gibt jedes Mal, wenn er als n?chstes anruft, ein Element zurück und wirft eine Ausnahme in der Stopperation aus, wenn es keine Elemente mehr gibt. 2. Der Generator verwendet Funktionsdefinition, um Daten auf Bedarf zu generieren, Speicher zu speichern und unendliche Sequenzen zu unterstützen. 3. Verwenden Sie Iteratoren, wenn Sie vorhandene S?tze verarbeiten, und verwenden Sie einen Generator, wenn Sie dynamisch Big Data oder faule Bewertung generieren, z. B. das Laden von Zeilen nach Zeile beim Lesen gro?er Dateien. Hinweis: Iterbare Objekte wie Listen sind keine Iteratoren. Sie müssen nach dem Erreichen des Iterators nach seinem Ende nachgebaut werden, und der Generator kann ihn nur einmal durchqueren.

Wie man mit der API -Authentifizierung in Python umgeht Wie man mit der API -Authentifizierung in Python umgeht Jul 13, 2025 am 02:22 AM

Der Schlüssel zum Umgang mit der API -Authentifizierung besteht darin, die Authentifizierungsmethode korrekt zu verstehen und zu verwenden. 1. Apikey ist die einfachste Authentifizierungsmethode, die normalerweise in den Anforderungsheader- oder URL -Parametern platziert ist. 2. BasicAuth verwendet Benutzername und Kennwort für die Basis64 -Codierungsübertragung, die für interne Systeme geeignet ist. 3.. OAuth2 muss das Token zuerst über Client_id und Client_secret erhalten und dann das BearerToken in den Anforderungsheader bringen. V. Kurz gesagt, die Auswahl der entsprechenden Methode gem?? dem Dokument und das sichere Speichern der Schlüsselinformationen ist der Schlüssel.

Wie man über zwei Listen gleichzeitig python iteriert Wie man über zwei Listen gleichzeitig python iteriert Jul 09, 2025 am 01:13 AM

Eine gemeinsame Methode, um zwei Listen gleichzeitig in Python zu durchqueren, besteht darin, die Funktion ZIP () zu verwenden, die mehrere Listen in der Reihenfolge und die kürzeste ist. Wenn die Listenl?nge inkonsistent ist, k?nnen Sie iTertools.zip_longest () verwenden, um die l?ngste zu sein und die fehlenden Werte auszufüllen. In Kombination mit Enumerate () k?nnen Sie den Index gleichzeitig erhalten. 1.zip () ist pr?gnant und praktisch, geeignet für die Iteration gepaarte Daten; 2.zip_longest () kann den Standardwert beim Umgang mit inkonsistenten L?ngen einfüllen. 3.Enumerate (ZIP ()) kann w?hrend des Durchlaufens Indizes erhalten und die Bedürfnisse einer Vielzahl komplexer Szenarien erfüllen.

Was sind Python -Typ -Hinweise? Was sind Python -Typ -Hinweise? Jul 07, 2025 am 02:55 AM

TypHintsinpythonsolvetheProblemofAmbiguityAndpotentialbugsindynamicalpedCodeByAllowingDevelopstospecifyexpectypes

Was sind Python -Iteratoren? Was sind Python -Iteratoren? Jul 08, 2025 am 02:56 AM

INPYTHON, ITERATORATORSAROBJECTSHATALWOULOUPING ThroughCollections Byimplementing__iter __ () und __Next __ (). 1) IteratorsworkviATheiterProtocol, verwendete __iter __ () toreturn thiteratorand__Next __ () torethentexteemtemuntemuntilstoperationSaised.2) und

Erkl?ren Sie Python -Behauptungen. Erkl?ren Sie Python -Behauptungen. Jul 07, 2025 am 12:14 AM

Assert ist ein Inssertion -Tool, das in Python zum Debuggen verwendet wird, und wirft einen Assertionerror aus, wenn der Zustand nicht erfüllt ist. Die Syntax ist eine geltende Bedingung sowie optionale Fehlerinformationen, die für die interne Logiküberprüfung geeignet sind, z. B. Parameterprüfung, Statusbest?tigung usw., k?nnen jedoch nicht für die Sicherheits- oder Benutzereingabeprüfung verwendet werden und sollten in Verbindung mit klaren Eingabeaufforderungen verwendet werden. Es ist nur zum Hilfsdebuggen in der Entwicklungsphase verfügbar, anstatt die Ausnahmebehandlung zu ersetzen.

Python Fastapi Tutorial Python Fastapi Tutorial Jul 12, 2025 am 02:42 AM

Um moderne und effiziente APIs mit Python zu schaffen, wird Fastapi empfohlen. Es basiert auf Eingabeaufforderungen an Standardpython -Typ und kann automatisch Dokumente mit ausgezeichneter Leistung generieren. Nach der Installation von Fastapi und ASGI Server Uvicorn k?nnen Sie Schnittstellencode schreiben. Durch das Definieren von Routen, das Schreiben von Verarbeitungsfunktionen und die Rückgabe von Daten kann schnell APIs erstellt werden. Fastapi unterstützt eine Vielzahl von HTTP -Methoden und bietet automatisch generierte Swaggerui- und Redoc -Dokumentationssysteme. URL -Parameter k?nnen durch Pfaddefinition erfasst werden, w?hrend Abfrageparameter durch Einstellen von Standardwerten für Funktionsparameter implementiert werden k?nnen. Der rationale Einsatz pydantischer Modelle kann dazu beitragen, die Entwicklungseffizienz und Genauigkeit zu verbessern.

See all articles