[Python3] Verstehe die Grundlagen von Beautiful Soup

Einführung

Ich fing an, Python zu lernen. Ich möchte mein Verständnis von Web Scraping vertiefen, also werde ich es auf meine eigene Weise zusammenfassen.

Wie das Web funktioniert

Ich werde es in diesem Artikel weglassen, aber wenn Sie ein verteiltes System entwickeln, müssen Sie es bis zu einem gewissen Grad verstehen. Persönlich empfehle ich dieses Buch zum Lernen. [Technologien, die Web-HTTP, URI, HTML und REST unterstützen (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 / 477142042 / ref = pd_lpo_14_t_2 / 357-3513078-6123409? = 4b55d259-ebf0-4306-905a-7762d1b93740 & pf_rd_r = 9KK4FFTSP6VV300G2BH3 & psc = 1 & refRID = 9KK4FFTSP6VV300G2BH3)

Was ist schöne Suppe?

Dies ist das Hauptthema. In Büchern usw. wird es als Bibliothek beschrieben, die HTML analysiert. Überprüfen Sie auch die offizielle Website. Die Merkmale sind die folgenden drei Punkte.

  1. Bietet Methoden zum Navigieren, Suchen und Ändern der Baumstruktur.
  2. Es wird automatisch codiert (es sei denn, BeautifulSoup kann die Codierung des Dokuments nicht identifizieren).
  3. Das empfangene Dokument ist Unicode
  4. Das zu sendende Dokument ist UTF-8
  5. Sie können den zu verwendenden Parser auswählen.
  6. html.parser: Standardbibliothek. Die Verarbeitungsgeschwindigkeit ist weder schnell noch langsam.
  7. lxml: Bibliothek eines Drittanbieters. Gekennzeichnet durch die hohe Verarbeitungsgeschwindigkeit.
  8. html5lib: Bibliothek eines Drittanbieters. Hohe Leistung wie die Unterstützung der HTML5-Grammatik und die Interpretation derselben Methode wie ein Webbrowser. Die Verarbeitungsgeschwindigkeit ist anderen unterlegen.

Installieren Sie schöne Suppe

Installieren Sie die BeautifulSoup-Bibliothek.

Führen Sie den folgenden Befehl in der interaktiven Shell aus.

> pip3 install BeautifulSoup4

Wenn Sie es importieren können, ist die Installation erfolgreich. bs4 ist eine Bibliothek.

>>> from bs4 import BeautifulSoup4

Versuchen Sie, mit BeautifulSoup Informationen von der Website zu extrahieren

Dieses Mal werden wir den Titel und die URL der Nachrichtenliste von YAHOO! JAPAN extrahieren.

image.png

Implementieren

--Verwenden Sie Anfragen, um Site-Informationen zu erhalten. --Verwenden Sie BeautifulSoup, um die Elemente zu analysieren. --Verwenden Sie re, um das Element mit einem regulären Ausdruck abzurufen.

Code

ScrapingSample.py


import requests
from bs4 import BeautifulSoup
import re

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

#Erhalten Sie Site-Informationen mithilfe von Anfragen
result = requests.get(url)
#Elemente analysieren
bs = BeautifulSoup(result.text, "html.parser")
#Der Link ist"news.yahoo.co.jp/pickup"Holen Sie sich passende Artikel
news_list = bs.find_all(href=re.compile("news.yahoo.co.jp/pickup"))

#Extrahieren Sie Textattribute und href-Attribute aus den erfassten Elementen
for news in news_list:
      print("{0} , {1}".format(news.getText(), news.get('href')))

Ausführungsergebnis

3 Präfekturen haben Maskenkäufer freigelassen, https://news.yahoo.co.jp/pickup/6360522
USA diskutiert Wiederaufnahme des Atomtests US-Zeitung, https://news.yahoo.co.jp/pickup/6360527
Hell und dunkel NEU bei Subaru und Mitsubishi Corona, https://news.yahoo.co.jp/pickup/6360528
Anti-Malaria-Medikament erhöhtes Todesrisiko NEU, https://news.yahoo.co.jp/pickup/6360523
Eine Frau in den Vierzigern und Vierzigern brach vor Tagesanbruch ab, https://news.yahoo.co.jp/pickup/6360529
Maskenlieferung in Iwate Voice von heute NEU, https://news.yahoo.co.jp/pickup/6360521
Reitklub Prise Ich möchte vermeiden, zu töten, https://news.yahoo.co.jp/pickup/6360510
Rina Akiyama bringt einen zweiten Jungen zur Welt NEU, https://news.yahoo.co.jp/pickup/6360531

"NEU" wurde ebenfalls extrahiert, aber ich denke, es ist in Ordnung, es zu ersetzen, wenn es nicht erforderlich ist (nicht in dieser Implementierung enthalten).

abschließend

Es war ein einfacher Inhalt, aber ich möchte mein Verständnis vertiefen, indem ich die offiziellen Dokumente lese.

Recommended Posts

[Python3] Verstehe die Grundlagen von Beautiful Soup
[Python3] Grundlegendes zu Dateivorgängen
[Python] Ein Memorandum der schönen Suppe4
Überprüfung der Grundlagen von Python (FizzBuzz)
Informationen zur Grundlagenliste der Python-Grundlagen
Lernen Sie die Grundlagen von Python ① Grundlegende Anfänger
Python-Grundlagen ①
Grundlagen von Python ①
Ich kannte die Grundlagen von Python nicht
Grundlagen zum Ausführen von NoxPlayer in Python
Grundlagen der Python-Scraping-Grundlagen
Meine schöne Suppe (Python)
der Zen von Python
# 4 [Python] Grundlagen der Funktionen
Grundlagen von Python: Ausgabe
Auf dem Weg zum Ruhestand von Python2
Lassen Sie uns die Grundlagen des Python-Codes von TensorFlow aufschlüsseln
Python: Grundlagen der Verwendung von Scikit-Learn ①
Ich möchte die Grundlagen von Bokeh vollständig verstehen
14 Tests, um den überraschend verwirrenden Umfang von Python zu verstehen
Verstehen Sie den Status des Datenverlusts - Python vs. R.
Über die Funktionen von Python
Wie viel kennen Sie die Grundlagen von Python?
Python x GIS-Grundlagen (1)
Die Kraft der Pandas: Python
Erleichtern Sie die Anzeige von Python-Modulausnahmen
[In kürzester Zeit verstehen] Python-Grundlagen für die Datenanalyse
Versuchen Sie es mit Python + Beautiful Soup
Python x GIS-Grundlagen (3)
[Python] Der Stolperstein des Imports
Erster Python 3 ~ Der Beginn der Wiederholung ~
Verstehen Sie den Inhalt der sklearn-Pipeline
Kratzen mit Python und schöner Suppe
Existenz aus Sicht von Python
pyenv-change die Python-Version von virtualenv
Erste Schritte mit Python Grundlagen von Python
[Python] Die potenzielle Feldplanung von Python Robotics verstehen
Grundlagen von Python x GIS (Teil 2)
[Python] Praktisch schöne Suppe ~ Kratzen Sie die Triple Single Odds-Tabelle auf der offiziellen Website des Bootsrennens ~
Ich kenne den Wertfehler nicht
Ich kannte die Grundlagen von Python nicht
Python-Grundlagen ⑤
Schöne Suppe
Python-Grundlagen
Python-Grundlagen ④
Python-Grundlagen ③
Python-Grundlagen
[Super-Grundlagen von Python] Ich habe die Grundlagen der Grundlagen gelernt und sie daher kurz zusammengefasst.
Python-Grundlagen
Python-Grundlagen
Python-Grundlagen ③
Python-Grundlagen ②
Python-Grundlagen ②
[Python] Ein Hinweis, dass ich das Verhalten von matplotlib.pyplot zu verstehen begann
Grundlagen der binärisierten Bildverarbeitung durch Python
Python: Grundlagen der Bilderkennung mit CNN
Ändern Sie die Länge der Python-CSV-Zeichenfolgen
Lernen Sie noch einmal die Grundlagen von Theano