Mémo de raclage Python

Ceci est un mémo d'outils qui peuvent être utilisés lors du scraping avec Python.

demandes - Obtenez des données sur le Web

Le moyen le plus simple d'accéder au Web avec Python est d'utiliser des requests. Vous pouvez l'installer avec pip. Pour GET et POST, l'utilisation de requests.get et requests.post est généralement suffisante.

Installation

$ pip install requests

Veuillez consulter ici pour plus de détails. http://requests-docs-ja.readthedocs.org/en/latest/

BeautifulSoup4 --Parsing HTML

BeautifulSoup4 est un bon moyen d'analyser le HTML.

>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup('<div><h1 id="test">TEST</h1></div>', 'html')
>>> soup.select_one('div h1#test').text
'TEST'

Les caractères de la balise sont soup.text, et les attributs sont accessibles avec soup ['id'] (où id est le nom de l'attribut).

Méthode fréquemment utilisée de l'objet BeautifulSoup

--BeautifulSoup.find () -> Rechercher des balises et renvoyer la première balise hit --BeautifulSoup.find_all () -> Recherche de balises et retourne une liste de balises de hit --BeautifulSoup.find_previous () -> Renvoie la balise précédente --BeautifulSoup.find_next () -> Renvoie la balise suivante --BeautifulSoup.find_parent () -> Renvoie la balise parent --BeautifulSoup.select () -> renvoie une liste de balises avec le sélecteur css --BeautifulSoup.select_one () -> Recherche avec le sélecteur css et retourne le premier hit tag

Veuillez consulter ici pour plus de détails. http://kondou.com/BS4/

Persistance des données

Format CSV

CSV est un fichier dans un format séparé par des virgules. Vous pouvez utiliser le module csv. En savoir plus sur le module csv ici. http://docs.python.jp/3.4/library/csv.html

l'écriture

import csv
with open('some.csv', 'wb') as f:
    writer = csv.writer(f)
    writer.writerows(someiterable)

en train de lire

import csv
with open('some.csv', 'rb') as f:
    reader = csv.reader(f)
    for row in reader:
        print row

Format JSON

Le format JSON est également un format couramment utilisé. Utilisez le module standard module json.

>>> import json
>>> json.dumps([1, 2, 3, 4])
'[1, 2, 3, 4]'
>>> json.loads('[1, 2, 3, 4]')
[1, 2, 3, 4]
>>> json.dumps({'aho': 1, 'ajo': 2})
'{"aho": 1, "aro": 2}'
>>> json.loads('{"aho": 1, "ajo": 2}')
{u'aho': 1, u'aro': 2}

--json.dumps () -> Faire de l'objet une chaîne JSON --json.loads () -> Faire de la chaîne JSON un objet --json.dump () -> Transforme l'objet en une chaîne JSON et l'écris dans un fichier --json.load () -> Lire la chaîne JSON dans le fichier et en faire un objet

Veuillez consulter ici pour plus de détails. http://docs.python.jp/3.4/library/json.html

échantillon

J'en ai préparé comme échantillon de grattage. se il vous plaît se référer. Cependant, il existe également des sites généraux, alors veuillez ne pas lancer de demandes. Même si vous faites une erreur, vous ne pouvez pas simplement tourner la boucle.

Un site qui semble intéressant si vous essayez de collecter des données

--https: //teratail.com/ Ce pourrait être une bonne idée de tondre l'entrée sur la première page. --http: //isitchristmas.com/ Jugement de Noël (en temps opportun) --https: //data.nasa.gov/developer Les données de la NASA sont disponibles, il peut donc être intéressant de les consulter.

Il existe de nombreux autres sites qui ont l'air bien ...

Recommended Posts

Mémo de raclage Python
[Scraping] Scraping Python
Scraping Python get_ranker_categories
Grattage avec Python
Note d'apprentissage Python_000
Notes d'apprentissage Python
Grattage avec Python
Notes de débutant Python
Note d'apprentissage Python_006
Python racle eBay
notes de python C ++
Grattage Python get_title
Note d'apprentissage Python_005
Notes de grammaire Python
Note sur la bibliothèque Python
Python: grattage partie 1
notes personnelles python
Scraping à l'aide de Python
mémo pandas python
Note d'apprentissage Python_001
notes d'apprentissage python
Notes d'installation de Python3.4
Python: grattage, partie 2
Grattage WEB avec Python (pour mémo personnel)
Grattage en Python (préparation)
Essayez de gratter avec Python.
notes personnelles en python manquantes
UnicodeEncodeError: 'cp932' pendant le scraping Python
Principes de base du grattage Python
Grattage avec Python + PhantomJS
Notes de développement de package Python
notes d'utilisation du décorateur python
Mémo du package d'adresse IP Python
Notes sur le format Python Pickle
Premier mémo divers sur Python
Matlab => Notes de migration Python
Grattage avec du sélénium [Python]
Remarques sur l'affectation Python3
Scraping avec Python + PyQuery
Notes sur l'utilisation de sous-processus Python
Python essayer / sauf mémo
Scraping RSS avec Python
Notes sur le flacon de framework Python
mémo python utilisant l'opérateur perl-ternaire
Scraping à l'aide de Python 3.5 async / await
Web scraping avec python + JupyterLab
Grattage au sélénium en Python
Grattage avec Selenium + Python Partie 1
Mémo d'apprentissage O'Reilly python3 Primer
[Python] Scraping dans AWS Lambda
python super débutant essaie de gratter
Python
Grattage avec chromedriver en python
Grattage festif avec Python, scrapy
Remarques sur l'utilisation du test unittest standard Python
Notes Python à oublier bientôt