Ce message est pour le 24 décembre de Crawler / Scraping Advent Calendar 2014.
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.
En fait, seule la bibliothèque standard convient, mais cette fois j'ai utilisé la bibliothèque suivante.
pip install requests
pip install BeautifulSoup
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()
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.
À propos de la base de données Sean Lahman
Recommended Posts