Téléchargez des fichiers dans n'importe quel format en utilisant Python

Ce message est pour le 24 décembre de Crawler / Scraping Advent Calendar 2014.

introduction

Lorsque vous naviguez sur un site Web, vous souhaiterez peut-être télécharger des fichiers (zip, pdf) de n'importe quel format à la fois.

Vous pouvez le télécharger manuellement, mais dans ce cas, vous pouvez facilement écrire le processus en utilisant un langage de script tel que Python ou Ruby.

Cette fois, j'ai écrit un script à télécharger en utilisant Python.

Bibliothèque

En fait, seule la bibliothèque standard convient, mais cette fois j'ai utilisé la bibliothèque suivante.

Installation de la bibliothèque

pip install requests
pip install BeautifulSoup

Code source

Le contenu du traitement est le suivant.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import requests
import time

from BeautifulSoup import BeautifulSoup

BASE_URL = u"http://seanlahman.com/"
EXTENSION = u"csv.zip"

urls = [
    u"http://seanlahman.com/baseball-archive/statistics/",
]

for url in urls:

    download_urls = []
    r = requests.get(url)
    soup = BeautifulSoup(r.content)
    links = soup.findAll('a')

    #Extraire l'URL
    for link in links:

        href = link.get('href')

        if href and EXTENSION in href:
            download_urls.append(href)

    #Téléchargement de fichiers (limité à 3 pour le moment)
    for download_url in download_urls[:3]:
		 
        #1 seconde de sommeil
        time.sleep(1)

        file_name = download_url.split("/")[-1]

        if BASE_URL in download_url:
            r = requests.get(download_url)
        else:
            r = requests.get(BASE_URL + download_url)
        
        #Enregistrer le fichier
        if r.status_code == 200:
            f = open(file_name, 'w')
            f.write(r.content)
            f.close()

À la fin

Il existe de nombreuses améliorations telles que la gestion des erreurs et l'ajustement de l'URL de téléchargement, mais Pour le moment, vous pouvez désormais télécharger des fichiers dans n'importe quel format de fichier (zip, pdf, etc.).

Si vous utilisez Python etc., vous pouvez gratter très facilement, donc Il vaudrait mieux augmenter le nombre de scripts dont vous disposez tout en l'améliorant en fonction du site.

Lien de référence

À propos de la base de données Sean Lahman

Recommended Posts

Téléchargez des fichiers dans n'importe quel format en utilisant Python
Téléchargez des fichiers Google Drive en Python
format en python
Format d'image en Python
Formatez facilement JSON avec Python
Comment télécharger des fichiers depuis Selenium of Python dans Chrome
Trouvez la date de cette semaine dans n'importe quel format avec python
Traduit à l'aide de googletrans en Python
Utilisation du mode Python dans le traitement
Translocation de fichiers CSV avec Python Partie 1
[Python] Chargement de fichiers csv à l'aide de pandas
Précautions lors de l'utilisation de Pit avec Python
Formater automatiquement le code Python avec Vim
Gérez les données au format NetCDF avec Python
Gérez le format GDS II avec Python
Essayez d'utiliser LevelDB avec Python (plyvel)
Utilisation de variables globales dans les fonctions python
Trier les gros fichiers texte en Python
Voyons voir l'utilisation de l'entrée en python
Puissance totale en Python (en utilisant functools)
Lire des fichiers en parallèle avec Python
Exporter et exporter des fichiers en Python
Reconnaissance de caractères manuscrits à l'aide de KNN en Python
Essayez d'utiliser LeapMotion avec Python
Recherche de priorité de profondeur à l'aide de la pile en Python
Lors de l'utilisation d'expressions régulières en Python
Extraire des chaînes de fichiers avec Python
Création d'interface graphique en python avec tkinter 2
Télécharger Python
Fonctionnement de la souris à l'aide de l'API Windows en Python
[AWS] Utilisation de fichiers ini avec Lambda [Python]
Notes utilisant cChardet et python3-chardet dans Python 3.3.1.
Essayez d'utiliser l'API Wunderlist en Python
Création d'interface graphique en python à l'aide de tkinter partie 1
Obtenir l'équilibre Suica en Python (en utilisant libpafe)
Pratique d'utilisation de ceci en Python (mauvais)
Hachez lentement les mots de passe en utilisant bcrypt en Python
Essayez d'utiliser l'API Kraken avec Python
Utilisation de venv dans un environnement Windows + Docker [Python]
Trouver des fichiers comme Linux Find en Python
[FX] Hit oanda-API avec Python en utilisant Docker
Tapez les annotations pour Python2 dans les fichiers stub!
Tweet à l'aide de l'API Twitter en Python
[Python] [Windows] Communication série en Python à l'aide de DLL
J'ai essayé d'utiliser l'optimisation bayésienne de Python
Connectez-vous à Slack à l'aide de requêtes en Python
Référence du fichier INI en Python ou Ruby
Obtenez des données Youtube en Python à l'aide de l'API Youtube Data
Télécharger des fichiers sur le Web avec Python
Utilisation des constantes physiques dans Python scipy.constants ~ constant e ~
Scraping de sites Web à l'aide de JavaScript en Python
Télécharger des images à partir de la liste d'URL en Python
Développement de slack bot avec python en utilisant chat.postMessage
Lire et écrire des fichiers JSON avec Python
Exemple de gestion des fichiers eml en Python
Ecrire un module python dans fortran en utilisant f2py
Dessinez une structure arborescente en Python 3 à l'aide de graphviz
Remarques sur l'utilisation de python (pydev) avec eclipse