J'ai commencé à apprendre Python. Je souhaite approfondir ma compréhension du web scraping, je vais donc le résumer à ma manière.
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)
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.
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
Cette fois, nous allons extraire le titre et l'URL de la liste des actualités de YAHOO! JAPAN.
--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.
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')))
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).
C'était un contenu simple, mais je voudrais approfondir ma compréhension en lisant les documents officiels.
Recommended Posts