Heim >Backend-Entwicklung >Python-Tutorial >Wie Beautiful Soup zum Extrahieren von Daten aus dem öffentlichen Web verwendet wird
Beautiful Soup ist eine Python-Bibliothek, die zum Scrapen von Daten aus Webseiten verwendet wird. Es erstellt einen Analysebaum zum Parsen von HTML- und XML-Dokumenten und erleichtert so das Extrahieren der gewünschten Informationen.
Beautiful Soup bietet mehrere Schlüsselfunktionen für Web Scraping:
Um Beautiful Soup verwenden zu können, müssen Sie die Bibliothek zusammen mit einem Parser wie lxml oder html.parser installieren. Sie können sie mit pip
installieren
#Install Beautiful Soup using pip. pip install beautifulsoup4 lxml
Bei Websites, die Inhalte auf mehreren Seiten anzeigen, ist die Handhabung der Paginierung unerlässlich, um alle Daten zu erfassen.
import requests from bs4 import BeautifulSoup base_url = 'https://example-blog.com/page/' page_number = 1 all_titles = [] while True: # Construct the URL for the current page url = f'{base_url}{page_number}' response = requests.get(url) soup = BeautifulSoup(response.content, 'html.parser') # Find all article titles on the current page titles = soup.find_all('h2', class_='article-title') if not titles: break # Exit the loop if no titles are found (end of pagination) # Extract and store the titles for title in titles: all_titles.append(title.get_text()) # Move to the next page page_number += 1 # Print all collected titles for title in all_titles: print(title)
Manchmal sind die Daten, die Sie extrahieren müssen, in mehreren Tag-Ebenen verschachtelt. Hier erfahren Sie, wie Sie mit der Extraktion verschachtelter Daten umgehen.
import requests from bs4 import BeautifulSoup url = 'https://example-blog.com/post/123' response = requests.get(url) soup = BeautifulSoup(response.content, 'html.parser') # Find the comments section comments_section = soup.find('div', class_='comments') # Extract individual comments comments = comments_section.find_all('div', class_='comment') for comment in comments: # Extract author and content from each comment author = comment.find('span', class_='author').get_text() content = comment.find('p', class_='content').get_text() print(f'Author: {author}\nContent: {content}\n')
Viele moderne Websites verwenden AJAX, um Daten dynamisch zu laden. Die Handhabung von AJAX erfordert verschiedene Techniken, wie z. B. die Überwachung von Netzwerkanfragen mithilfe von Browser-Entwicklertools und die Replikation dieser Anfragen in Ihrem Scraper.
import requests from bs4 import BeautifulSoup # URL to the API endpoint providing the AJAX data ajax_url = 'https://example.com/api/data?page=1' response = requests.get(ajax_url) data = response.json() # Extract and print data from the JSON response for item in data['results']: print(item['field1'], item['field2'])
Web Scraping erfordert eine sorgfältige Abwägung rechtlicher, technischer und ethischer Risiken. Durch die Implementierung geeigneter Sicherheitsmaßnahmen können Sie diese Risiken mindern und Web Scraping verantwortungsbewusst und effektiv durchführen.
Beautiful Soup ist eine leistungsstarke Bibliothek, die den Web-Scraping-Prozess vereinfacht, indem sie eine benutzerfreundliche Oberfläche zum Navigieren und Durchsuchen von HTML- und XML-Dokumenten bereitstellt. Es kann verschiedene Parsing-Aufgaben bewältigen und ist somit ein unverzichtbares Werkzeug für jeden, der Daten aus dem Web extrahieren möchte.
Das obige ist der detaillierte Inhalt vonWie Beautiful Soup zum Extrahieren von Daten aus dem öffentlichen Web verwendet wird. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!