[PYTHON] Vous serez ingénieur dans 100 jours ――Jour 73 ――Programmation ――À propos du scraping 4

Cliquez ici jusqu'à hier

Vous deviendrez ingénieur dans 100 jours-70-Programmation-À propos du scraping

Vous deviendrez ingénieur dans 100 jours - Jour 66 - Programmation - À propos du traitement du langage naturel

Vous deviendrez ingénieur dans 100 jours - Jour 63 - Programmation - À propos de la probabilité 1

Vous deviendrez ingénieur dans 100 jours - Jour 59 - Programmation - À propos des algorithmes

Vous deviendrez ingénieur dans 100 jours --- Jour 53 --Git --À propos de Git

Vous deviendrez ingénieur dans 100 jours - Jour 42 --Cloud --À propos des services cloud

Vous deviendrez ingénieur dans 100 jours - Jour 36 --Base de données --À propos de la base de données

Vous deviendrez ingénieur dans 100 jours-24 jours-Python-Bases du langage Python 1

Vous deviendrez ingénieur dans 100 jours --Jour 18 --Javascript --Les bases de JavaScript 1

Vous deviendrez ingénieur dans 100 jours - Jour 14 --CSS --CSS Basics 1

Vous deviendrez ingénieur dans 100 jours - Jour 6 --HTML - Bases du HTML 1

Cette fois, c'est aussi une continuation du grattage.

Jusqu'à la dernière fois, l'analyse de la requête et de la syntaxe était terminée. Cette fois, c'est une méthode pour sauvegarder les données acquises.

Sauvegardez les informations acquises

Parce que le «scraping» ne se termine souvent pas par une URL Vous pouvez enregistrer les données en stockant les informations acquises dans un type de liste et en les sortant dans un fichier ou une base de données selon le cas.

import requests
from bs4 import BeautifulSoup

url = 'URL d'accès'
res = requests.get(url)
soup = BeautifulSoup(res.content, "html.parser")

#Préparez une liste vide
result_list = []

#Obtenez toutes les balises
a_tags = soup.find_all('a')
for a in a_tags[0:10]:
    #Stocker le href de la balise a dans la liste
    result_list.append(a.get('href'))

print(result_list)

['http://www.otupy.com', '/otu/', '/business/', '/global/', '/news/', '/python/', '/visits/', '/recruit/', '/vision/']

Vous pouvez classer ce que vous avez stocké dans la liste avec le code suivant.

with open('Chemin du fichier','w') as _w:
    for row in result_list:
        _w.write('\t'.join(row))

Comment télécharger des fichiers

Non seulement les informations textuelles peuvent être obtenues par grattage. Si la destination de la demande est un fichier, vous pouvez obtenir le fichier.

Vous pouvez télécharger le fichier avec le code suivant.

import requests
import os

url = 'URL du fichier'

#Extraire le nom du fichier de l'URL
file_name = os.path.basename(url)
print(file_name)

#Accès en streaming à l'URL cible
res = requests.get(url, stream=True)
if res.status_code == 200:
    print('file download start {0}'.format(file_name))
    #Ecrire un fichier avec un code d'octet
    
    with open(file_name, 'wb') as file:
        # chunk_Procéder à l'écriture de fichier pour chaque taille
        for chunk in res.iter_content(chunk_size=1024):
            file.write(chunk)
    print('file download end   {0}'.format(file_name))

Pour enregistrer en tant que fichier, une fois que vous vous êtes assuré de pouvoir y accéder Écrivez la réponse sous forme de fichier.

Écrivez petit à petit avec res.iter_content (chunk_size = chunk size).

Encodage d'URL

Les caractères spéciaux tels que le japonais ne peuvent pas être utilisés dans l'URL. Si vous souhaitez utiliser le japonais pour l'URL lors de la recherche de japonais Vous devez convertir la chaîne en un code spécifique (une liste de symboles et de caractères alphanumériques).

Créer une chaîne de caractères pouvant être utilisée dans une URL à partir du japonais est appelé «encodage URL».

Au contraire, il est possible de convertir une chaîne de caractères qui a été «encodée en URL» et devient illisible en un état où elle peut être relue. Il est appelé «décodage URL».

python utilise la bibliothèque ʻurllib`.

** encodage d'URL ** ʻUrllib.parse.quote ('chaîne cible') `

** Décoder ** ʻUrllib.parse.unquote ('chaîne cible') `

import urllib.parse

#Encodage d'URL
st = 'Otsu py'
s_quote = urllib.parse.quote(st)
print(s_quote)

##Décoder
d_quote = urllib.parse.unquote('%E4%B9%99py')
print(d_quote)

%E4%B9%99py Otsu py

Résumé

Contient des connaissances supplémentaires sur le grattage. Puisqu'il s'agit d'une petite quantité, je pense que vous pouvez l'essayer immédiatement.

Passons en revue les procès-verbaux jusqu'à hier.

27 jours jusqu'à ce que vous deveniez ingénieur

Informations sur l'auteur

HP d'Otsu py: http://www.otupy.net/

Youtube: https://www.youtube.com/channel/UCaT7xpeq8n1G_HcJKKSOXMw

Twitter: https://twitter.com/otupython

Recommended Posts

Vous serez ingénieur dans 100 jours ――Jour 71 ――Programmation ――À propos du scraping 2
Vous serez ingénieur dans 100 jours ――Jour 74 ――Programmation ――À propos du scraping 5
Vous serez ingénieur dans 100 jours ――Jour 73 ――Programmation ――À propos du scraping 4
Vous serez ingénieur dans 100 jours ――Jour 75 ――Programmation ――À propos du scraping 6
Vous serez ingénieur dans 100 jours ――Jour 70 ――Programmation ――À propos du grattage
Vous serez ingénieur dans 100 jours ――Jour 61 ――Programmation ――A propos de l'exploration
Vous deviendrez ingénieur dans 100 jours --Jour 68 --Programmation --A propos de TF-IDF
Vous serez ingénieur dans 100 jours ――Jour 81 ――Programmation ――À propos de l'apprentissage automatique 6
Vous serez ingénieur dans 100 jours ――Jour 79 ――Programmation ――À propos de l'apprentissage automatique 4
Vous serez ingénieur dans 100 jours ――Jour 76 ――Programmation ――À propos de l'apprentissage automatique
Vous serez ingénieur dans 100 jours ―― Jour 80 ―― Programmation ―― À propos de l'apprentissage automatique 5
Vous serez ingénieur dans 100 jours ――Jour 78 ――Programmation ――À propos de l'apprentissage automatique 3
Vous serez ingénieur dans 100 jours ――Jour 84 ――Programmation ――À propos de l'apprentissage automatique 9
Vous serez ingénieur dans 100 jours ――Jour 83 ――Programmation ――À propos de l'apprentissage automatique 8
Vous serez ingénieur dans 100 jours ――Jour 77 ――Programmation ――À propos de l'apprentissage automatique 2
Vous serez ingénieur dans 100 jours ――Jour 85 ――Programmation ――À propos de l'apprentissage automatique 10
Vous serez ingénieur dans 100 jours ――Jour 65 ――Programmation ――A propos de la probabilité 3
Vous serez ingénieur dans 100 jours --Jour 86 --Base de données -
Vous serez ingénieur dans 100 jours ―― Jour 60 ―― Programmation ―― À propos de la structure des données et de l'algorithme de tri
Vous serez ingénieur dans 100 jours - Jour 34 - Python - Exercice Python 3
Vous serez ingénieur dans 100 jours - Jour 31 - Python - Python Exercice 2
Vous devenez ingénieur en 100 jours ――Jour 67 ――Programmation ――A propos de l'analyse morphologique
Vous devenez ingénieur en 100 jours ――Jour 66 ――Programmation ――À propos du traitement du langage naturel
Vous serez ingénieur dans 100 jours ――Jour 30 ―― Python ―― Bases du langage Python 6
Vous serez ingénieur dans 100 jours ――Jour 25 ―― Python ―― Bases du langage Python 2
Vous serez ingénieur dans 100 jours - Jour 29 - Python - Bases du langage Python 5
Vous serez ingénieur dans 100 jours - Jour 33 - Python - Bases du langage Python 8
Vous serez ingénieur dans 100 jours --Jour 26 --Python --Basiques du langage Python 3
Vous devenez ingénieur en 100 jours - Jour 35 - Python - Ce que vous pouvez faire avec Python
Vous serez ingénieur dans 100 jours --Jour 32 --Python --Basiques du langage Python 7
Vous serez ingénieur dans 100 jours --Jour 28 --Python --Les bases du langage Python 4
Lorsqu'une erreur se produit dans le scraping python (requêtes)
Vous devez faire attention aux commandes que vous utilisez quotidiennement dans l'environnement de production.