[PYTHON] Grattage 1

Aidemy https:// aidemy.net 2020/9/21

introduction

Bonjour, c'est Yope! Je suis étudiant, mais je suis intéressé par le domaine de l'IA, donc j'étudie à l'école spécialisée en IA "Aidemy". Je suis très heureux que de nombreuses personnes aient lu l'article de synthèse précédent. Je vous remercie! C'est le premier article de grattage. Ravi de vous rencontrer.

Quoi apprendre cette fois ・ Qu'est-ce que le grattage? ・ Obtenir une page Web (exploration)

Qu'est-ce que le grattage?

À propos du grattage

-Le scraping est le travail d'extraction automatique des informations nécessaires à partir de __ pages Web __. -En utilisant le grattage, il est possible de collecter une grande quantité de données nécessaires à l'apprentissage automatique. -Cependant, veuillez noter que les données sur le Web peuvent ne pas être les données __ (données ouvertes) __ qui peuvent être utilisées librement.

Flux de raclage

・ Vérifiez si le grattage est correct. De plus, si une API capable d'acquérir des données est fournie, utilisez-la. -Obtenir une page Web où vous pouvez obtenir des données. Cela s'appelle __crawling __. ・ Obtenez les informations nécessaires sur la page Web. (Grattage)

Trois principales méthodes de grattage

-__ Commande Wget : Utilisez la commande wget pour télécharger une page Web et utilisez la commande unix ou des expressions régulières pour gratter. __ Simple et facile, mais manque de fonctionnalités. __ - Outil de scraping Web : utilisez des extensions Chrome, des feuilles de calcul et d'autres outils qui permettent le scraping. Veuillez noter que certains points tels que __ les fonctions sont limitées et qu'il peut y avoir des frais . - Programmation: programmez vous-même la fonction de grattage. __ Peut gérer des données complexes. __ Cette fois, je vais gratter de cette façon.

Encoder et décoder

-L'encodage consiste à __ encoder des données dans un autre format __. -Le décodage consiste à renvoyer les données __encodées à leur format d'origine __. -En scraping, les données peuvent être acquises par encodage une fois pour acquérir des données temporaires et décoder les données temporaires.

Obtenir une page Web (exploration)

Obtenez une page Web

-Pour obtenir la page Web, utilisez __urlopen ("URL") __ qui peut être utilisé en important le module urllib.request. -Bien que la page Web acquise puisse être référencée avec la méthode read (), notez qu'il ne s'agit pas d'une chaîne de caractères (type str) car elle n'est pas décodée __. (Vérifiez la méthode de décodage dans les sections suivantes)

from urllib.request import urlopen
#Obtenir l'URL Google
url=urlopen("https://www.google.co.jp")

Décoder la page Web récupérée

-Le décodage nécessite des informations sur le "code de caractère" utilisé sur la page Web, donc commencez par l'obtenir. Le code de caractère peut être obtenu à l'aide de la méthode __info (). Get_content_charset (failobj = "utf-8") __. -La méthode ci-dessus (failobj = "utf-8") signifie que le code de caractère est automatiquement changé en "utf-8" lorsque le code de caractère (charset) n'est pas spécifié du côté de la page Web. y a-t-il. La page japonaise est essentiellement "utf-8", elle est donc spécifiée comme ceci.

url = urlopen("https://www.google.co.jp")
#Obtenir et afficher le code de caractère
encode = url.info().get_content_charset(failobj="utf-8")
print(encode) #shift_jis

-Une fois que le code de caractère peut être obtenu, décodez-le selon le code de caractère et obtenez la partie sous forme de code HTML de type str. -Le décodage est effectué avec __url.decode (code de caractère) __. Vous pouvez vérifier le contenu avec read ().

#Décodez l'url déjà encodée avec le code de caractère acquis (encoder)
url_decoded = url.decode(encode)
print(url_decoded.read()) #Abréviation (le code HTML est sorti)

Obtenez des pages Web plus facilement

-Si vous importez et utilisez le module request, vous pouvez obtenir la page Web plus facilement que urllib. Cependant, lors de l'exécution d'opérations compliquées, le prétraitement devient difficile. Utilisez __requests.get ("URL") __ pour obtenir l'URL, et utilisez encoding pour obtenir le code de caractère et text pour obtenir le code HTML décodé.

import requests
url=requests.get("https://www.google.co.jp")
print(url.encoding) #shift_jis
print(url.text) #Abréviation

Résumé

-Le scraping consiste à acquérir une page Web et à en extraire les données nécessaires. Dans l'apprentissage automatique, il est utilisé pour collecter les données nécessaires à l'apprentissage. -Lors de l'acquisition (de l'exploration) d'une page Web, la fonction __urlopen () __ du module urllib.request est utilisée, mais elle ne peut pas être traitée comme des données à moins qu'elle ne soit décodée. -Pour décoder, vous devez d'abord obtenir le code de caractère de la page Web et utiliser la méthode __decode () __ en fonction du code de caractère. -Si vous utilisez le module de requêtes, vous pouvez obtenir l'URL avec __requests.get () __, tandis que vous pouvez obtenir le code de caractère avec encoding, et vous pouvez obtenir le code HTML dans l'état décodé avec text. C'est très facile.

Cette fois, c'est fini. Merci d'avoir lu jusqu'ici.

Recommended Posts

Grattage 1
Divers grattage
Début du grattage
[Scraping] Scraping Python
Échantillon de grattage
raclage Web
Mémo de raclage Python
Grattage au sélénium
Grattage au sélénium ~ 2 ~
À propos du scraping Twitter
J'ai essayé de gratter
grattage Web (prototype)
Python racle eBay
Grattage avec du sélénium
Grattage de 100 images Fortnite
Grattage Python get_title
Python: grattage partie 1
Scraping à l'aide de Python
Python: grattage, partie 2
Grattage réussi avec Selenium
Grattage en Python (préparation)
Essayez de gratter avec Python.
UnicodeEncodeError: 'cp932' pendant le scraping Python
Principes de base du grattage Python
Grattage avec Python + PhantomJS
Premiers pas avec le Web Scraping
Grattage avec coquille tremblante
Création d'outils de grattage
Scraping: enregistrer le site Web localement
Grattage du tableau Powerpoint (pptx)
Grattage de l'horaire de la ligne Keikyu
Grattage avec du sélénium [Python]
Scraping avec Python + PyQuery
Gratter avec une belle soupe
Scraping RSS avec Python