Web scraping avec Python Première étape

Ceci est un article pour les débutants du web scraping utilisant Python 3 et Beautiful Soup 4.

J'ai fait référence à des articles précédents, Puisqu'un avertissement était affiché ou qu'il ne fonctionnait pas en raison de la différence de version, j'ai essayé de le résumer à nouveau.

Aperçu

Le processus de base du scraping Web est le suivant.

① Obtenez la page Web. (2) Divisez les éléments de la page acquise et extrayez n'importe quelle partie. ③ Enregistrez dans la base de données.

Utilisez request pour obtenir la page Web de ① et BeautifulSoup4 à traiter ②. Étant donné que ③ diffère selon l'environnement, l'explication est omise dans cet article.

Préparation

Après avoir installé Python3 Utilisez la commande pip pour installer les trois packages BeautifulSoup4, requests et lxml.

$ pip install requests 
$ pip install lxml
$ pip install beautifulsoup4

Exécution du programme

Créez le fichier de script suivant.

sample.py


import requests
from bs4 import BeautifulSoup

target_url = 'http://example.co.jp'  #example.co.jp est un domaine fictif. Changer pour n'importe quelle URL
r = requests.get(target_url)         #Obtenez du Web à l'aide de demandes
soup = BeautifulSoup(r.text, 'lxml') #Extraire des éléments

for a in soup.find_all('a'):
	print(a.get('href'))         #Afficher le lien

Démarrez une invite de commande et exécutez la commande suivante.

$ python sample.py 

Après exécution, si le lien de la page est affiché sur la console, c'est réussi!

Belle méthode de soupe

Voici quelques méthodes utiles pour BeautifulSoup.

soup.a.string          #Changer la chaîne de caractères de la balise a
soup.a.attrs            #Changer tous les attributs
soup.a.parent          #L'élément parent renvoie

soup.find('a')          #Le premier élément est retourné
soup.find_all(id='log')    #Tous les éléments sont retournés

soup.select('head > title')   #Spécifié par le sélecteur css

BeautifulSoup a de nombreuses autres méthodes que vous pouvez utiliser. Pour plus de détails, veuillez vous référer au document officiel. https://www.crummy.com/software/BeautifulSoup/bs4/doc/

Affinez les éléments

Il est pratique d'utiliser l'expression régulière de re pour affiner l'élément cible.

import re
soup.find_all('a', href=re.compile("^http"))     #Liens commençant par http
import re
soup.find_all('a', href=re.compile("^(?!http)")) #Ne commence pas par http(le déni)
import re
soup.find_all('a', text=re.compile("N"), title=re.compile("W")) #Éléments où le texte contient N et le titre contient W

Manipuler des chaînes

Il complète les opérations de chaîne qu'il est utile de retenir lors du scraping.

-Supprimé les espaces avant et après les caractères
"  abc  ".strip()
→abc
・ Personnages séparés
"a, b, c,".split(',') 
→[a, b, c]
・ Recherche de chaînes de caractères
"abcde".find('c') #Renvoie la position s'il y a un caractère spécifié.
→2
・ Remplacement des personnages
"abcdc".replace('c', 'x')
→abxdx

Articles référencés

http://qiita.com/itkr/items/513318a9b5b92bd56185

Recommended Posts

Web scraping avec Python Première étape
Web scraping avec python + JupyterLab
Web scraping débutant avec python
Grattage avec Python
Grattage avec Python
J'ai essayé webScraping avec python.
[GUI avec Python] PyQt5-La première étape-
Les débutants en Python sont bloqués dans leur premier scraping Web
Grattage WEB avec Python (pour mémo personnel)
Premiers pas avec Python Web Scraping Practice
[Note personnelle] Scraping de pages Web en python3
Site de courses de chevaux Web scraping avec Python
Premiers pas avec Python Web Scraping Practice
Pratiquer le web scraping avec Python et Selenium
Scraping Web facile avec Python et Ruby
[Pour les débutants] Essayez le web scraping avec Python
Grattage en Python (préparation)
Essayez de gratter avec Python.
Grattage avec Python + PhantomJS
Grattage avec du sélénium [Python]
Scraping avec Python + PyQuery
Scraping RSS avec Python
Web scraping avec Python (prévisions météo)
Web scraping avec Python (cours de l'action)
J'ai essayé de gratter avec Python
Grattage au sélénium en Python
Grattage avec Selenium + Python Partie 1
Grattage avec chromedriver en python
Enregistrez des images avec le web scraping
Grattage avec du sélénium en Python
Première simulation de cellule nerveuse avec NEURON + Python
Grattage Web facile avec Scrapy
Grattage avec Tor en Python
API Web avec Python + Falcon
Web scraping avec Selenium (Python)
Scraping prévisions météorologiques avec python
Grattage avec Selenium + Python Partie 2
Application Web avec Python + Flask ② ③
J'ai essayé de gratter avec du python
Rationalisez la recherche Web avec Python
Application Web avec Python + Flask ④
Analyse de données pour améliorer POG 1 ~ Web scraping avec Python ~
Scrapage Web rapide avec Python (tout en prenant en charge le chargement JavaScript)
Essayez de gratter avec Python + Beautiful Soup
Scraping avec Node, Ruby et Python
Scraping avec Selenium en Python (Basic)
Grattage WEB avec BeautifulSoup4 (page en couches)
Grattage avec Python, Selenium et Chromedriver
Premiers pas avec les applications Web Python
Gratter le classement Web d'Alexa avec pyQuery
Grattage avec Python et belle soupe
Surveillez les applications Web Python avec Prometheus
Obtenez une capture d'écran Web avec python
[Scraping] Scraping Python
Exploration Web, scraping Web, acquisition de caractères et sauvegarde d'image avec python
Faisons du scraping d'images avec Python
Un programmeur C / C ++ défie Python (première étape)