[Anfänger] Leicht verständliches Python-Web-Scraping mit Google Colaboratory

Die Erklärung der folgenden Personen war leicht zu verstehen. Referenz: Scraping mit Python (1) Einführung | Lassen Sie uns Daten automatisch mithilfe von Scraping extrahieren

Ich verstehe den Fluss des Web Scraping. Als nächstes möchte ich den Code so ändern, dass Informationen von mehreren Sites abgerufen werden können.

Holen Sie sich Site-HTML

import requests
from bs4 import BeautifulSoup
html_doc = requests.get("https://www.yahoo.co.jp/").text #Holen Sie sich HTML für Yahoo-Site
soup = BeautifulSoup(html_doc, 'html.parser') #Schöne Suppeninitialisierung
print(soup.prettify())  #HTML einrücken, um das Lesen zu erleichtern.

Verarbeitung von erworbenem HTML

#Titel holen
title = soup.title.text
print(title)

#Referenz)
# Python,Verwendung von Anfragen
# https://note.nkmk.me/python-requests-usage/
# 
#Antwortobjekt
# url:URL-Attribut
#Statuscode: status_Code-Attribut
#Codierung:Kodierungsattribut
#Antwortheader:Header-Attribut
#Text:Textattribut
#Binärdaten:Inhaltsattribut


#Beschreibung abrufen
meta_description = soup.find('meta', {'name' : 'description'})
description = meta_description['content']
print(description)

#Beim Abrufen mehrerer Tags
tags = soup.find_all("a")
print(tags)
##Ergebnis
[<a class="yMWCYupQNdgppL-NV6sMi _3sAlKGsIBCxTUbNi86oSjt" data-ylk="slk:help;pos:0" href="https://www.yahoo-help.jp/">Hilfe</a>,
 <a class="yMWCYupQNdgppL-NV6sMi _3sAlKGsIBCxTUbNi86oSjt" data-ylk="rsec:header;slk:logo;pos:0" href="https://www.yahoo.co.jp">Yahoo! JAPAN</a>,
 <a aria-label="Übergang zur Prämie" class="yMWCYupQNdgppL-NV6sMi _3sAlKGsIBCxTUbNi86oSjt" data-ylk="rsec:header;slk:premium;pos:0" href="https://premium.yahoo.co.jp/"><p class="oLvk9L5Yk-9JOuzi-OHW5"><span class="t_jb9bKlgIcajcRS2hZAP">Prämie</span><span class="_2Uq6Pw5lfFfxr_OD36xHp6 _3JuM5k4sY_MJiSvJYtVLd_ Y8gFtzzcdGMdFngRO9qFV" style="width:36px;height:38px"></span></p></a>,
 <a aria-label="Übergang zur Karte" class="yMWCYupQNdgppL-NV6sMi _3sAlKGsIBCxTUbNi86oSjt" data-ylk="rsec:header;slk:card;pos:0" href="https://card.yahoo.co.jp/service/redirect/top/"><p class="oLvk9L5Yk-9JOuzi-OHW5"><span class="t_jb9bKlgIcajcRS2hZAP">Karte</span><span class="_2Uq6Pw5lfFfxr_OD36xHp6 _3JuM5k4sY_MJiSvJYtVLd_ _1MaEI7rEHB4FpQ1MwfWxIK" style="width:36px;height:38px"></span></p></a>,
 <a aria-label="Übergang zur Post" class="yMWCYupQNdgppL-NV6sMi _3sAlKGsIBCxTUbNi86oSjt" data-ylk="rsec:header;slk:mail;pos:0" href="https://mail.yahoo.co.jp/"><p class="oLvk9L5Yk-9JOuzi-OHW5"><span class="t_jb9bKlgIcajcRS2hZAP">Email</span><span class="_2Uq6Pw5lfFfxr_OD36xHp6 _3JuM5k4sY_MJiSvJYtVLd_ _3Qi5P0lTFbNkWishPzz8tb" style="width:36px;height:38px"></span></p></a>,
...]

#Holen Sie sich den Text und den Link des erhaltenen Tags
for tag in tags:
 print (tag.string)
 print (tag.get("href"))
##Ergebnis
Hilfe
https://www.yahoo-help.jp/
Yahoo! JAPAN
https://www.yahoo.co.jp
None
https://premium.yahoo.co.jp/
...

In CSV-Daten speichern

import pandas as pd
from google.colab import files

columns = ["name", "url"]
df = pd.DataFrame(columns=columns)
#Fügen Sie dem Datenrahmen den Artikelnamen und die Artikel-URL hinzu
for tag in tags:
 name = tag.string
 url = tag.get("href")
 se = pd.Series([name, url], columns)
 print(se)
 df = df.append(se, columns)
# result.Ausgabe an CSV mit dem Namen csv
filename = "result.csv"
df.to_csv(filename, encoding = 'utf-8-sig', index=False)
files.download(filename)

#Referenz)
#Exportieren / Hinzufügen einer CSV-Datei mit Pandas (zu_csv)
# https://note.nkmk.me/python-pandas-to-csv/

Recommended Posts

[Anfänger] Leicht verständliches Python-Web-Scraping mit Google Colaboratory
Web Scraping mit Selenium (Python)
Web Scraping Anfänger mit Python
Scraping mit Python
Ich habe versucht, Web-Scraping mit Python und Selen
Ein Forscher eines Pharmaunternehmens fasste das Web-Scraping mit Python zusammen
Scraping mit Python 3.5 async / await
Web Scraping mit Python + JupyterLab
Python Super Anfänger versucht zu kratzen
Lernen Sie Python mit Google Colaboratory
Scraping mit Python 3.5 Async-Syntax
Web Scraping mit AWS Lambda
[Python Scraping] Ich habe versucht, Google Search Top10 mit Beautifulsoup & Selenium
[Python3] Google übersetzt Google Übersetzung ohne Verwendung von API
Web Scraping mit Python Erster Schritt
Ich habe versucht, WebScraping mit Python.
In Google Colaboratory registrierte Snippets (Scraping)
Web Scraping für Anfänger in Python (1)
Web Scraping für Anfänger in Python (4) -1
Google-Labor
[Scraping] Python-Scraping
Web Scraping
WEB-Scraping mit Python (für persönliche Notizen)
Erste Schritte mit Python Web Scraping Practice
Übliche Verarbeitungshinweise bei Verwendung von Google Colaboratory
Versuchen Sie, Python mit Google Cloud-Funktionen zu verwenden
[Persönlicher Hinweis] Scraping von Webseiten in Python3
Pferderennseite Web Scraping mit Python
Scraping von Websites mit JavaScript in Python
Erste Schritte mit Python Web Scraping Practice
Kostenlose First-Principles-Berechnung mit Google Colaboratory
Verwendung des Jupyter-Kernels von Java mit Google Colaboratory
[Python] Eine Tabelle mit Beautiful Soup kratzen
Üben des Web-Scrapings mit Python und Selen
Einfaches Web-Scraping mit Python und Ruby
Erstellen einer Google-Tabelle mit der Python / Google Data-API
[Für Anfänger] Versuchen Sie Web Scraping mit Python
Kostenlose Python-Ausführungsumgebung Google Colaboratory Memo
Anfänger ABC154 (Python)
Python-Scraping-Memo
Anfänger ABC156 (Python)
Python Scraping get_ranker_categories
Scraping mit Python
Python-Anfänger-Memo (9.2-10)
Vorgehensweise zur Verwendung der WEG-API von TeamGant (mit Python)
Scraping mit Python
Python-Anfänger-Memo (9.1)
Python-Anfängernotizen
Web Scraping (Prototyp)
[Anfänger] Python-Array
Starten Sie Python
Python Scraping eBay
Versuchen Sie es mit dem Python-Webframework Tornado Part 1
Erstellen Sie eine Webmap mit Python und GDAL
Anfänger ABC155 (Python)
[Python] Fluss vom Web-Scraping zur Datenanalyse
Python Scraping get_title