[Débutant] Scrapage Web Python facile à comprendre à l'aide de Google Colaboratory

L'explication des personnes suivantes était facile à comprendre. Référence: Scraping with Python (1) Introduction | Extrayons automatiquement les données en utilisant le scraping

Je comprends le flux du web scraping. Ensuite, je voudrais modifier le code afin que les informations puissent être obtenues à partir de plusieurs sites.

Obtenir le code HTML du site

import requests
from bs4 import BeautifulSoup
html_doc = requests.get("https://www.yahoo.co.jp/").text #Obtenir du HTML pour le site Yahoo
soup = BeautifulSoup(html_doc, 'html.parser') #Belle initialisation de soupe
print(soup.prettify())  #Mettez du HTML en retrait pour faciliter la lecture.

Traitement du HTML acquis

#Obtenir le titre
title = soup.title.text
print(title)

#référence)
# Python,Comment utiliser les requêtes
# https://note.nkmk.me/python-requests-usage/
# 
#Objet de réponse
# url:attribut url
#Code d'état: status_attribut de code
#codage:attribut d'encodage
#En-tête de réponse:attribut headers
#texte:attribut de texte
#Données binaires:attribut de contenu


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

#Lors de l'obtention de plusieurs balises
tags = soup.find_all("a")
print(tags)
##résultat
[<a class="yMWCYupQNdgppL-NV6sMi _3sAlKGsIBCxTUbNi86oSjt" data-ylk="slk:help;pos:0" href="https://www.yahoo-help.jp/">Aidez-moi</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="Transition vers la prime" 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">prime</span><span class="_2Uq6Pw5lfFfxr_OD36xHp6 _3JuM5k4sY_MJiSvJYtVLd_ Y8gFtzzcdGMdFngRO9qFV" style="width:36px;height:38px"></span></p></a>,
 <a aria-label="Transition vers la carte" 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">carte</span><span class="_2Uq6Pw5lfFfxr_OD36xHp6 _3JuM5k4sY_MJiSvJYtVLd_ _1MaEI7rEHB4FpQ1MwfWxIK" style="width:36px;height:38px"></span></p></a>,
 <a aria-label="Transition vers le courrier" 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>,
...]

#Obtenez le texte et le lien de la balise obtenue
for tag in tags:
 print (tag.string)
 print (tag.get("href"))
##résultat
Aidez-moi
https://www.yahoo-help.jp/
Yahoo! JAPAN
https://www.yahoo.co.jp
None
https://premium.yahoo.co.jp/
...

Enregistrer en données CSV

import pandas as pd
from google.colab import files

columns = ["name", "url"]
df = pd.DataFrame(columns=columns)
#Ajouter le nom de l'article et l'URL de l'article au bloc de données
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.Sortie au format CSV avec le nom csv
filename = "result.csv"
df.to_csv(filename, encoding = 'utf-8-sig', index=False)
files.download(filename)

#référence)
#Exporter / ajouter un fichier csv avec pandas (vers_csv)
# https://note.nkmk.me/python-pandas-to-csv/

Recommended Posts

[Débutant] Scrapage Web Python facile à comprendre à l'aide de Google Colaboratory
Web scraping avec Selenium (Python)
Web scraping débutant avec python
Scraping à l'aide de Python
J'ai essayé le web scraping en utilisant python et sélénium
Un chercheur d'une société pharmaceutique a résumé le raclage Web à l'aide de Python
Scraping à l'aide de Python 3.5 async / await
Web scraping avec python + JupyterLab
python super débutant essaie de gratter
Étudiez Python avec Google Colaboratory
Scraping à l'aide de la syntaxe Python 3.5 Async
Web scraping à l'aide d'AWS lambda
[Python scraping] J'ai essayé la recherche Google Top10 en utilisant Beautifulsoup et sélénium
[Python3] Google translate google translation sans utiliser l'API
Web scraping avec Python Première étape
J'ai essayé webScraping avec python.
Extraits (scraping) enregistrés dans Google Colaboratory
Web scraping pour les débutants en Python (1)
Web scraping pour les débutants en Python (4) -1
Collaboratoire Google
[Scraping] Scraping Python
raclage Web
Grattage WEB avec Python (pour mémo personnel)
Premiers pas avec Python Web Scraping Practice
Notes de traitement habituelles lors de l'utilisation de Google Colaboratory
Essayez d'utiliser Python avec Google Cloud Functions
[Note personnelle] Scraping de pages Web en python3
Site de courses de chevaux Web scraping avec Python
Scraping de sites Web à l'aide de JavaScript en Python
Premiers pas avec Python Web Scraping Practice
Calcul des premiers principes gratuitement à l'aide de Google Colaboratory
Utilisation du noyau Jupyter de Java avec Google Colaboratory
[Python] Gratter une table avec Beautiful Soup
Pratiquer le web scraping avec Python et Selenium
Scraping Web facile avec Python et Ruby
Créer une feuille de calcul Google à l'aide de l'API Python / Google Data
[Pour les débutants] Essayez le web scraping avec Python
Environnement d'exécution Python gratuit Google Colaboratory Memo
Débutant ABC154 (Python)
Mémo de raclage Python
Débutant ABC156 (Python)
Scraping Python get_ranker_categories
Grattage avec Python
mémo débutant python (9.2-10)
Procédure pour utiliser l'API WEB de TeamGant (en utilisant python)
Grattage avec Python
mémo débutant python (9.1)
Notes de débutant Python
grattage Web (prototype)
[Débutant] Tableau Python
Commencez à utiliser Python
Python racle eBay
Essayez d'utiliser le framework Web Python Tornado Partie 1
Créer une carte Web en utilisant Python et GDAL
Débutant ABC155 (Python)
[Python] Flux du scraping Web à l'analyse des données
Grattage Python get_title