Résumé de base du scraping avec des requêtes que les débutants peuvent absolument comprendre [Python]

Bases des demandes

import

import requests

Vous aurez certainement besoin de cette importation.

Obtenez la source sur le site Web

--Obtenir avec la méthode GET --Obtenir avec la méthode POST

Vous devez vous souvenir de ces deux.

Get avec la méthode GET (requests.get)

import requests

url = 'https://www.yahoo.co.jp/'
response = requests.get(url)
print(response) # →<Response [200]>

html = response.text
print(html) #→ Chaîne source HTML

La valeur de retour de requests.get (url) est le code d'état HTTP. En cas de succès, 200 seront renvoyés.

Vous pouvez obtenir la chaîne source HTML que vous recherchez dans response.text.

Get avec la méthode POST (requests.post)

Vous ne pouvez pas obtenir la source que vous recherchez sans la méthode POST.

data =  {'username':'tarouyamada', 'password':'4r8q99fiad'}

response = requests.post(url, data=data)

Vous pouvez maintenant envoyer la demande avec le corps de la demande.

Comment ajouter un en-tête de demande

headers = {'user-agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36', 
'accept': 'application/json'}

response = requests.get(url, headers=headers)

Vous pouvez maintenant envoyer la demande avec l'en-tête de la demande attaché. La méthode d'écriture est courante pour get et post.

Obtenez une image

Vous pouvez obtenir des données binaires en utilisant .content. Les images sont également un type de données binaires.

response = requests.get(url)

img_data = response.content

print(img_data)
#b'\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x00\x00\x01\x00\x01\x00\x00\xff\xdb\x00C\x00\x03\x02\x02\x03\x02\x02\x03\x03\x03\x03\x04\x03\x03\x04\x05\x08\x05\x05\x04\x04\x05\n\x07\x07\x06\x08\x0c\n\x0………

print(type(img_data))
# <class 'bytes'>

--La sortie est de type octets

Enregistrer l'image
with open('test.jpg', 'wb') as f:
    f.write(response.content)

Spécification des paramètres

params = {'q':'qiita', 'date':'2020-7-3'}

response = requests.get(url, params=params)

Afficher l'en-tête de la réponse

--Le type de contenu peut être utilisé pour juger s'il s'agit de texte, json ou image.

response = requests.get(
    'https://www.pakutaso.com/shared/img/thumb/nekocyan458A3541_TP_V.jpg')

print(response.headers)

# {'Server': 'nginx', 'Date': 'Tue, 07 Jul 2020 22:39:37 GMT', 'Content-Type': 'image/jpeg', 'Content-Length': '239027', 'Last-Modified': 'Sun, 05 Jul 2020 01:51:48 GMT', 'Connection': 'keep-alive', 'ETag': '"5f013234-3a5b3"', 'Expires': 'Thu, 06 Aug 2020 22:39:37 GMT', 'Cache-Control': 'max-age=2592000', 'X-Powered-By': 'PleskLin', 'Strict-Transport-Security': 'max-age=31536000;  includeSubDomains; preload', 'Accept-Ranges': 'bytes'}

S'il y a une redirection

Obtenez la réponse de la destination de la redirection

Si vous souhaitez utiliser l'historique lors de la redirection, utilisez .history

Vérifier l'encodage

response = requests.get(
    'https://qiita.com/')

print(response.encoding)

# utf-8

Obtenir des données JSON

--Peut être obtenu sous forme de dictionnaire avec response.json ()

response = requests.get(url)

json_dict = response.json()

Recommended Posts

Résumé de base du scraping avec des requêtes que les débutants peuvent absolument comprendre [Python]
[Python] Introduction au scraping WEB | Résumé des méthodes pouvant être utilisées avec webdriver
Résumé du flux de base de l'apprentissage automatique avec Python
Récapitulatif du format des formats qui peuvent être sérialisés avec gensim
[Pour les débutants] Résumé de l'entrée standard en Python (avec explication)
Résumé de base de la manipulation de données avec Python Pandas - Première moitié: création et manipulation de données
Scraping avec Selenium en Python (Basic)
Etude de base d'OpenCV avec Python
[Django] Un simple résumé de la fonction de sortie du journal afin que même les débutants puissent la comprendre.
[Pour les débutants] Essayez le web scraping avec Python
Résoudre avec Python [100 questions que les débutants et les intermédiaires devraient résoudre] (034-038 Méthode de planification dynamique: Knapsack DP basic)
Analyse des données de pratique Python Résumé de l'apprentissage que j'ai atteint environ 10 avec 100 coups
Grattage avec Python
Grattage avec Python
[Python] Résumé des opérations sur les fichiers S3 avec boto3
Une doublure qui produit 10000 chiffres de rapport de circonférence avec Python
Histoire de base de l'héritage en Python (pour les débutants)
Résumé des méthodes d'analyse de données statistiques utilisant Python qui peuvent être utilisées en entreprise
[Introduction à Python] Utilisation basique de la bibliothèque scipy que vous devez absolument connaître
Web scraping pour les débutants en Python (1) Version améliorée
Récapitulatif des outils d'exploitation de l'interface graphique Windows avec Python
Résumé des méthodes de prétraitement pour les débutants en Python (trame de données Pandas)
Notes sur les connaissances Python utilisables avec AtCoder
Les débutants en Python sont bloqués dans leur premier scraping Web
Essayez de gratter avec Python.
Principes de base du grattage Python
Grattage avec Python + PhantomJS
Connaissance de base de Python
Résumé des arguments Python
Grattage avec du sélénium [Python]
Réessayer avec des requêtes python
Scraping avec Python + PyQuery
Scraping RSS avec Python
Résumé de base des opérations de données dans Python Pandas - Deuxième moitié: agrégation de données
J'ai écrit la grammaire de base de Python dans Jupyter Lab
Introduction à Python que même les singes peuvent comprendre (partie 3)
Un résumé de l'apprentissage automatique Python pour débutant est très concis.
Introduction à Python que même les singes peuvent comprendre (partie 1)
Introduction à Python que même les singes peuvent comprendre (partie 2)
Résumé des modules qui automatisent et facilitent l'installation de WebDriver avec Python
Voici un résumé des choses qui pourraient être utiles pour traiter des nombres complexes en Python
Comprendre les probabilités et les statistiques qui peuvent être utilisées pour la gestion des progrès avec un programme python
[Python] Un programme qui trouve le nombre maximum de jouets pouvant être achetés avec votre argent
J'ai essayé de gratter avec Python
Web scraping avec python + JupyterLab
Grattage au sélénium en Python
Grattage avec Selenium + Python Partie 1
Résumé des opérations de liste Python3
Grattage avec chromedriver en python
Authentification BASIC avec bouteille Python
Grattage festif avec Python, scrapy
[Python] Utilisation d'OpenCV avec Python (basique)
Grattage avec du sélénium en Python
Grattage avec Tor en Python
Scraping prévisions météorologiques avec python
Grammaire de base Python pour les débutants
Résumé de l'utilisation de base de Pandas
Grattage avec Selenium + Python Partie 2