Dieser Beitrag ist für den 24. Dezember von Crawler / Scraping Advent Calendar 2014.
Wenn Sie eine Website durchsuchen, möchten Sie möglicherweise Dateien (zip, pdf) in einem beliebigen Format gleichzeitig herunterladen.
Sie können es manuell herunterladen, aber in diesem Fall können Sie den Prozess einfach mit einer Skriptsprache wie Python oder Ruby schreiben.
Diesmal habe ich ein Skript zum Herunterladen mit Python geschrieben.
Eigentlich ist nur die Standardbibliothek in Ordnung, aber diesmal habe ich die folgende Bibliothek verwendet.
pip install requests
pip install BeautifulSoup
Der Verarbeitungsinhalt ist wie folgt.
#!/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')
#URL extrahieren
for link in links:
href = link.get('href')
if href and EXTENSION in href:
download_urls.append(href)
#Dateidownload (vorerst auf 3 begrenzt)
for download_url in download_urls[:3]:
#1 Sekunde Schlaf
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)
#Datei speichern
if r.status_code == 200:
f = open(file_name, 'w')
f.write(r.content)
f.close()
Es gibt jedoch viele Verbesserungen wie Fehlerbehandlung und Anpassung der Download-URL Derzeit können Sie Dateien in jedem Dateiformat (zip, pdf usw.) herunterladen.
Wenn Sie Python usw. verwenden, können Sie sehr leicht kratzen Es ist besser, die Anzahl der Skripte zu erhöhen und sie je nach Site zu verbessern.
Über die Sean Lahman Datenbank
Recommended Posts