[Python3] Comprendre les bases de Beautiful Soup

introduction

J'ai commencé à apprendre Python. Je souhaite approfondir ma compréhension du web scraping, je vais donc le résumer à ma manière.

Comment fonctionne le Web

Je vais l'omettre dans cet article, mais si vous développez un système distribué, vous devez le comprendre dans une certaine mesure. Personnellement, je recommande ce livre pour apprendre. [Technologies prenant en charge Web-HTTP, URI, HTML et REST (WEB + DB PRESS plus)](https://www.amazon.co.jp/Web%E3%82%92%E6%94%AF%E3 % 81% 88% E3% 82% 8B% E6% 8A% 80% E8% A1% 93-HTTP% E3% 80% 81URI% E3% 80% 81HTML% E3% 80% 81% E3% 81% 9D% E3 % 81% 97% E3% 81% A6REST-WEB-PRESS-plus / dp / 4774142042 / ref = pd_lpo_14_t_2 / 357-3513078-6123409? _Encoding = UTF8 & pd_rd_i = 4774142042 & pd_rd_r = 7d_rd_i = 4774142042 & pd_rd_r = 7fe1 bea1-bf1 = 4b55d259-ebf0-4306-905a-7762d1b93740 & pf_rd_r = 9KK4FFTSP6VV300G2BH3 & psc = 1 & refRID = 9KK4FFTSP6VV300G2BH3)

Qu'est-ce que la belle soupe?

C'est le sujet principal. Dans les livres, etc., il est décrit comme une bibliothèque qui analyse le HTML. Consultez également le Site officiel. Les caractéristiques sont les trois points suivants.

  1. Fournit des méthodes pour naviguer, rechercher et modifier l'arborescence.
  2. Il encodera automatiquement (sauf si BeautifulSoup ne peut pas identifier l'encodage du document).
  3. Le document reçu est Unicode
  4. Le document à envoyer est UTF-8
  5. Vous pouvez sélectionner l'analyseur à utiliser.
  6. html.parser: bibliothèque standard. La vitesse de traitement n'est ni rapide ni lente.
  7. lxml: bibliothèque tierce. Caractérisé par la vitesse de traitement élevée.
  8. html5lib: bibliothèque tierce. Performances élevées telles que la prise en charge de la grammaire HTML5 et l'interprétation de la même méthode qu'un navigateur Web. La vitesse de traitement est inférieure aux autres.

Installez Beautiful Soup

Installez la bibliothèque BeautifulSoup.

Exécutez la commande suivante dans le shell interactif.

> pip3 install BeautifulSoup4

Si vous pouvez l'importer, l'installation est réussie. bs4 est une bibliothèque.

>>> from bs4 import BeautifulSoup4

Essayez d'extraire des informations du site Web en utilisant BeautifulSoup

Cette fois, nous allons extraire le titre et l'URL de la liste des actualités de YAHOO! JAPAN.

image.png

Implémenter

--Utilisez les demandes pour obtenir des informations sur le site. --Utilisez BeautifulSoup pour analyser les éléments. --Utilisez re pour obtenir l'élément avec une expression régulière.

code

ScrapingSample.py


import requests
from bs4 import BeautifulSoup
import re

url = "https://www.yahoo.co.jp/"

#Obtenir des informations sur le site à l'aide de demandes
result = requests.get(url)
#Analyser les éléments
bs = BeautifulSoup(result.text, "html.parser")
#Le lien est"news.yahoo.co.jp/pickup"Obtenez des articles qui correspondent
news_list = bs.find_all(href=re.compile("news.yahoo.co.jp/pickup"))

#Extraire les attributs de texte et les attributs href des éléments acquis
for news in news_list:
      print("{0} , {1}".format(news.getText(), news.get('href')))

Résultat d'exécution

3 préfectures libérées Mask shoppers, https://news.yahoo.co.jp/pickup/6360522
Les États-Unis discutent de la reprise des essais nucléaires, https://news.yahoo.co.jp/pickup/6360527
Lumière et obscurité NOUVEAU chez Subaru et Mitsubishi Corona, https://news.yahoo.co.jp/pickup/6360528
Les médicaments antipaludiques augmentent le risque de décès NOUVEAU, https://news.yahoo.co.jp/pickup/6360523
Une femme dans la quarantaine et la quarantaine s'est cassée avant l'aube, https://news.yahoo.co.jp/pickup/6360529
Livraison de masque dans Iwate Voice of nowadays NOUVEAU, https://news.yahoo.co.jp/pickup/6360521
Pincée de club équestre je veux éviter de tuer, https://news.yahoo.co.jp/pickup/6360510
Rina Akiyama donne naissance à un deuxième garçon NOUVEAU, https://news.yahoo.co.jp/pickup/6360531

"NEW" a également été extrait, mais je pense que c'est correct de le remplacer s'il n'est pas nécessaire (non inclus dans cette implémentation).

en conclusion

C'était un contenu simple, mais je voudrais approfondir ma compréhension en lisant les documents officiels.

Recommended Posts

[Python3] Comprendre les bases de Beautiful Soup
[Python3] Comprendre les bases des opérations sur les fichiers
[Python] Un mémorandum de belle soupe4
Revue des bases de Python (FizzBuzz)
À propos de la liste de base des bases de Python
Apprenez les bases de Python ① Débutants élémentaires
Les bases de Python ①
Bases de python ①
Je ne connaissais pas les bases de Python
Principes de base pour exécuter NoxPlayer en Python
Principes de base du grattage Python
Ma belle soupe (Python)
le zen de Python
# 4 [python] Bases des fonctions
Bases de python: sortie
Vers la retraite de Python2
Décomposons les bases du code Python de TensorFlow
python: principes de base de l'utilisation de scikit-learn ①
Je veux bien comprendre les bases de Bokeh
14 quiz pour comprendre la portée étonnamment compliquée de Python
Comprendre l'état de la perte de données - Python vs R
À propos des fonctionnalités de Python
Combien connaissez-vous les bases de Python?
Principes de base de Python x SIG (1)
Le pouvoir des pandas: Python
Facilitez la compréhension de l'affichage des exceptions du module Python
[Comprendre au plus court] Principes de base de Python pour l'analyse des données
Essayez de gratter avec Python + Beautiful Soup
Principes de base de Python x SIG (3)
[Python] La pierre d'achoppement de l'importation
First Python 3 ~ Le début de la répétition ~
Comprendre le contenu du pipeline sklearn
Grattage avec Python et belle soupe
Existence du point de vue de Python
pyenv-changer la version python de virtualenv
Premiers pas avec Python Bases de Python
[Python] Comprendre le potentiel_field_planning de Python Robotics
Principes de base de Python x SIG (partie 2)
[Python] Pratique Belle Soupe ~ Grattage du tableau des cotes triple simple sur le site officiel de la course de bateaux ~
Je ne connais pas l'erreur de valeur
Je ne connaissais pas les bases de Python
Les bases de Python ⑤
Belle soupe
Les bases de Python
Les bases de Python ④
Les bases de Python ③
Les bases de Python
[Super basiques de Python] J'ai appris les bases des bases, donc je l'ai résumé brièvement.
Les bases de Python
Les bases de Python
Les bases de Python ③
Les bases de Python ②
Les bases de Python ②
[python] Une note que j'ai commencé à comprendre le comportement de matplotlib.pyplot
Bases du traitement d'images binarisées par Python
Python: principes de base de la reconnaissance d'image à l'aide de CNN
Changer la longueur des chaînes csv Python
Apprenez à nouveau les bases de Theano