Maison développement back-end Tutoriel Python Comment Beautiful Soup est utilisé pour extraire des données du Web public

Comment Beautiful Soup est utilisé pour extraire des données du Web public

Aug 02, 2024 am 09:20 AM

How Beautiful Soup is used to extract data out of the Public Web

Beautiful Soup est une bibliothèque Python utilisée pour récupérer les données des pages Web. Il crée un arbre d'analyse pour analyser les documents HTML et XML, facilitant ainsi l'extraction des informations souhaitées.

Beautiful Soup offre plusieurs fonctionnalités clés pour le web scraping :

  1. Navigation dans l'arborescence d'analyse : Vous pouvez facilement naviguer dans l'arborescence d'analyse et rechercher des éléments, des balises et des attributs.
  2. Modification de l'arborescence d'analyse : Il vous permet de modifier l'arborescence d'analyse, notamment en ajoutant, supprimant et mettant à jour les balises et les attributs.
  3. Formatage de sortie : Vous pouvez reconvertir l'arbre d'analyse en chaîne, ce qui facilite l'enregistrement du contenu modifié.

Pour utiliser Beautiful Soup, vous devez installer la bibliothèque avec un analyseur tel que lxml ou html.parser. Vous pouvez les installer en utilisant pip

#Install Beautiful Soup using pip.
pip install beautifulsoup4 lxml
Copier après la connexion

Gestion de la pagination

Lorsqu'il s'agit de sites Web qui affichent du contenu sur plusieurs pages, la gestion de la pagination est essentielle pour récupérer toutes les données.

  1. Identifiez la structure de pagination : Inspectez le site Web pour comprendre comment la pagination est structurée (par exemple, le bouton de la page suivante ou les liens numérotés).
  2. Itérer sur les pages : Utilisez une boucle pour parcourir chaque page et récupérer les données.
  3. Mettre à jour l'URL ou les paramètres : Modifiez l'URL ou les paramètres pour récupérer le contenu de la page suivante.
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)
Copier après la connexion

Extraction de données imbriquées

Parfois, les données que vous devez extraire sont imbriquées dans plusieurs couches de balises. Voici comment gérer l'extraction de données imbriquées.

  1. Accédez aux balises parent : Recherchez les balises parent qui contiennent les données imbriquées.
  2. Extraire les balises imbriquées : Dans chaque balise parent, recherchez et extrayez les balises imbriquées.
  3. Parcourir les balises imbriquées : Parcourez les balises imbriquées pour extraire les informations requises.
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')

Copier après la connexion

Gestion des requêtes AJAX

De nombreux sites Web modernes utilisent AJAX pour charger des données de manière dynamique. La gestion d'AJAX nécessite différentes techniques, telles que la surveillance des requêtes réseau à l'aide d'outils de développement de navigateur et la réplication de ces requêtes dans votre 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'])

Copier après la connexion

Risques du Web Scraping

Le Web scraping nécessite un examen attentif des risques juridiques, techniques et éthiques. En mettant en œuvre des mesures de protection appropriées, vous pouvez atténuer ces risques et effectuer du web scraping de manière responsable et efficace.

  • Violations des conditions d'utilisation : de nombreux sites Web interdisent explicitement le scraping dans leurs conditions d'utilisation (ToS). La violation de ces conditions peut entraîner des poursuites judiciaires.
  • Problèmes de propriété intellectuelle : La suppression de contenu sans autorisation peut porter atteinte aux droits de propriété intellectuelle, entraînant des litiges juridiques.
  • Blocage IP : les sites Web peuvent détecter et bloquer les adresses IP présentant un comportement de grattage.
  • Interdictions de compte : Si le scraping est effectué sur des sites Web nécessitant une authentification de l'utilisateur, le compte utilisé pour le scraping peut être banni.

Beautiful Soup est une bibliothèque puissante qui simplifie le processus de web scraping en fournissant une interface facile à utiliser pour naviguer et rechercher des documents HTML et XML. Il peut gérer diverses tâches d'analyse, ce qui en fait un outil essentiel pour quiconque cherche à extraire des données du Web.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser Python pour trouver la distribution ZIPF d'un fichier texte Comment utiliser Python pour trouver la distribution ZIPF d'un fichier texte Mar 05, 2025 am 09:58 AM

Comment utiliser Python pour trouver la distribution ZIPF d'un fichier texte

Comment télécharger des fichiers dans Python Comment télécharger des fichiers dans Python Mar 01, 2025 am 10:03 AM

Comment télécharger des fichiers dans Python

Filtrage d'image en python Filtrage d'image en python Mar 03, 2025 am 09:44 AM

Filtrage d'image en python

Comment utiliser la belle soupe pour analyser HTML? Comment utiliser la belle soupe pour analyser HTML? Mar 10, 2025 pm 06:54 PM

Comment utiliser la belle soupe pour analyser HTML?

Comment travailler avec des documents PDF à l'aide de Python Comment travailler avec des documents PDF à l'aide de Python Mar 02, 2025 am 09:54 AM

Comment travailler avec des documents PDF à l'aide de Python

Comment se cacher en utilisant Redis dans les applications Django Comment se cacher en utilisant Redis dans les applications Django Mar 02, 2025 am 10:10 AM

Comment se cacher en utilisant Redis dans les applications Django

Présentation de la boîte à outils en langage naturel (NLTK) Présentation de la boîte à outils en langage naturel (NLTK) Mar 01, 2025 am 10:05 AM

Présentation de la boîte à outils en langage naturel (NLTK)

Comment effectuer l'apprentissage en profondeur avec TensorFlow ou Pytorch? Comment effectuer l'apprentissage en profondeur avec TensorFlow ou Pytorch? Mar 10, 2025 pm 06:52 PM

Comment effectuer l'apprentissage en profondeur avec TensorFlow ou Pytorch?

See all articles