Ein Leitfaden zur Vereinfachung von Web Scraping in Python mit AutoScraper

Leitfäden, Kratzen, Python, May-23-20245 Min. gelesen

AutoScraper ist eine leistungsstarke, quelloffene Web-Scraping-Bibliothek für Python, die das Extrahieren von Daten aus Websites vereinfacht. Im Gegensatz zu herkömmlichen Web-Scraping-Frameworks, die umfangreiche Kodierung erfordern, um HTML-Inhalte zu analysieren, kann AutoScraper automatisch Regeln generieren, um die gewünschten Informationen auf der Grundlage der von Ihnen bereitgestellten Beispiele zu extrahieren. AutoScraper eignet sich besonders gut für Anfänger in der Web Scraping Welt. Seine benutzerfreundliche Oberfläche und die automatische Generierung von Regeln machen ihn auch für diejenigen zugänglich, die nicht über umfangreiche Programmiererfahrung verfügen.   

Hauptmerkmale von AutoScraper

  • Einfacher Gebrauch: Mit ein paar Zeilen Code können Sie einen Web Scraper einrichten, der nur minimale Wartung erfordert.
  • Effiziente Datenextraktion: Das Modell von AutoScraper lernt die Struktur von Webseiten, um sich an geringfügige Änderungen anzupassen und so den Bedarf an häufigen Anpassungen zu reduzieren.
  • Vielseitigkeit: Es unterstützt eine breite Palette von Websites und kann in größere Datenpipelines integriert werden.

AutoScraper Schnellstart

Nehmen wir an, Sie wollen einen E-Commerce-Shop scrapen, ohne sich mit HTML-Parsing zu beschäftigen. Mit AutoScraper können Sie Produktnamen in die "wanted_list" eingeben, und das Programm lernt automatisch die HTML-Struktur und parst die nachfolgenden Produkte selbständig.

Hier ist ein anschauliches Beispiel, das den Prozess einschließlich der Implementierung von Bevollmächtigten veranschaulicht:

Schritt 1: AutoScraper installieren

Zuerst müssen Sie AutoScraper installieren. Sie können dies mit pip tun:

from autoscraper import AutoScraper

Schritt 3: Definieren Sie die URL und die Gesuchliste

Geben Sie die URL an, die Sie scrapen möchten und die Elemente oder Produkte, die Sie extrahieren möchten. Auf diese Weise kann AutoScraper die HTML-Struktur lernen und alle ähnlichen Elemente innerhalb dieses Rahmens genau analysieren:

url = 'https://books.toscrape.com/'
wanted_list = [
   "Tipping the Velvet",
   "Soumission",
]

Schritt 4: Bau des Abstreifers

Verwenden Sie den AutoScraper, um Ihr Scraping-Modell zu erstellen:

    scraper = AutoScraper()
    
    proxies = {
        "http": 'http://test_user112:[email protected]:6060',
        "https": 'http://test_user112:[email protected]:6060',
    }
    #  if you wish to use the same scraper again
    scraper.save('books_to_scrape')
    result = scraper.build(url, wanted_list, request_args=dict(proxies=proxies))
    print(result)

Schritt 5: (fakultativ) Wiederverwendung des vorherigen Abstreifers

    scraper = AutoScraper()

   scraper.load('books_to_scrape')

    Ergebnis = scraper.get_result(url)

Vom Code erzeugte Ausgabe:

[Ein Licht in den ...", 
'Tipping the Velvet', 
'Soumission', 
'Sharp Objects', 
'Sapiens: Eine kurze Geschichte ...', 
'The Requiem Red', 'The Dirty Little Secrets ...', 
'The Coming Woman: A ...', 
'Die Jungs im ...', 
'Die schwarze Maria', 
'Starving Hearts(Dreieckshandel...', 
"Shakespeare's Sonnets", 
'Set Me Free', 
"Scott Pilgrim's Precious Little ...", 
'Rip it Up and ...', 
'Our Band Could Be ...', 
'Olio', 
'Mesaerion: Die beste Wissenschaft ...', 
'Libertarismus für Anfänger', 
"Es ist nur der Himalaya", 
'Ein Licht auf dem Dachboden', 
'Sapiens: Eine kurze Geschichte der Menschheit', 
Die schmutzigen kleinen Geheimnisse des Traumjobs", 
The Coming Woman: Ein Roman basierend auf dem Leben der berüchtigten Feministin Victoria Woodhull", 
Die Jungs im Boot: Neun Amerikaner und ihr epischer Kampf um Gold bei den Olympischen Spielen 1936 in Berlin", 
Starving Hearts(Triangular Trade Trilogy,#1)", 
"Scott Pilgrims kostbares kleines Leben (Scott Pilgrim #1)", 
'Rip it Up and Start Again', 
'Our Band Could Be Your Life: Szenen aus dem amerikanischen Indie-Underground,  1981-1991", 
'Mesaerion: Die besten Science-Fiction-Geschichten  1800-1849"]

Beschränkungen

  Eine der größten Einschränkungen von AutoScraper ist, dass es kein JavaScript-Rendering oder dynamisch geladene Daten unterstützt. Aber keine Sorge, es gibt eine Lösung! Durch die Verwendung von Python-Bibliotheken wie Selenium oder Playwright, die mit dynamischen Daten umgehen können, können wir die HTML-Daten abgreifen und dann Autoscraper das Parsing für uns übernehmen lassen.
Wenn Ihre Ziel-Website einen Anti-Bot-Schutz verwendet, bieten wir unter ProxyScrape eine zuverlässige Web-Scraping-API an, die sich um alles kümmert und Ihren Datensammlungsprozess mühelos und effizient macht.
Hier ist ein Beispiel, wie Sie unsere Web-Scraping-API mit AutoScraper verwenden können:  

import requests
from autoscraper import AutoScraper


def send_request(url_to_scrape):
    api_key = 'your_api_key' 
    data = {
        "url": url_to_scrape,
        "browserHtml": True  # Use browserHtml for JavaScript rendering
    }
    headers = {
        "Content-Type": "application/json",
        "X-Api-Key": api_key
    }

    response = requests.post("https://api.proxyscrape.com/v3/accounts/freebies/scraperapi/request",
                             headers=headers, json=data)

    #  we return the html data that web scraping api extracted
    return response.json()['data']['browserHtml']

if __name__ == '__main__':
    target_url = 'https://books.toscrape.com/'

    # get html data using web scraping api
    html_content = send_request(target_url)

    # parse that html data using AutoScraper
    scraper = AutoScraper()

    wanted_list = [
        "Tipping the Velvet",
        "Soumission",
    ]

    result = scraper.build(wanted_list=wanted_list, html=html_content)

    print(result)

Best Practices für Web Scraping mit AutoScraper und Proxies

  • Respektieren Sie die Servicebedingungen der Website: Lesen Sie vor dem Scraping immer die Nutzungsbedingungen einer Website und halten Sie sie ein.
  • Rotierende Proxys verwenden: Um eine Erkennung und Ratenbegrenzung zu vermeiden, sollten Sie rotierende Proxys verwenden, die ihre IP-Adressen häufig wechseln. ProxyScrape bietet rotierende Proxys für Privatanwender und Mobiltelefone an, die für diesen Zweck perfekt geeignet sind.
  • Drosseln Sie Ihre Anfragen: Führen Sie Verzögerungen zwischen den Anfragen ein, um menschliches Verhalten zu imitieren und das Risiko, gesperrt zu werden, zu verringern.
  • Überwachen Sie Ihre Aktivitäten: Überprüfen Sie regelmäßig den Zustand Ihrer Proxys und die Leistung Ihres Scrapers, um eventuelle Probleme schnell zu erkennen und zu beheben.
  • Bleiben Sie auf dem neuesten Stand: Halten Sie Ihre Scraping-Skripte und Proxy-Listen auf dem neuesten Stand, um sich an Änderungen der Website-Strukturen und Proxy-IP-Rotationen anzupassen.

Schlussfolgerung

Web Scraping ist ein leistungsfähiges Werkzeug zur Datenerfassung, und mit der richtigen Kombination aus AutoScraper und Proxies können Sie sein volles Potenzial ausschöpfen. Durch die Integration von ProxyScrape's Premium-Proxys, stellen Sie sicher, dass Ihre Scraping-Aktivitäten effizient, anonym und ununterbrochen sind.Wir haben Ihnen die notwendigen Elemente zur Verfügung gestellt, um Ihnen den Einstieg zu ermöglichen, wenn Sie mit AutoScraper fortgeschrittener werden wollen, überprüfen Sie diesen Gist.

Sind Sie bereit, Ihr Web Scraping Spiel zu verbessern? Beginnen Sie noch heute, die Möglichkeiten von AutoScraper mit den Premium-Proxys von ProxyScrape zu erkunden. Besuchen Sie ProxyScrape um sich zu registrieren und die Vorteile unserer hochmodernen Proxy-Lösungen zu nutzen.

Wenn Sie Hilfe beim Web Scraping benötigen, können Sie unserem Discord-Kanal beitreten, wo Sie Unterstützung finden.

Viel Spaß beim Schaben!