Laden Sie Dateien in jedem Format mit Python herunter

Dieser Beitrag ist für den 24. Dezember von Crawler / Scraping Advent Calendar 2014.

Einführung

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.

Bibliothek

Eigentlich ist nur die Standardbibliothek in Ordnung, aber diesmal habe ich die folgende Bibliothek verwendet.

Bibliotheksinstallation

pip install requests
pip install BeautifulSoup

Quellcode

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()

Am Ende

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.

Referenzlink

Über die Sean Lahman Datenbank

Recommended Posts

Laden Sie Dateien in jedem Format mit Python herunter
Laden Sie Google Drive-Dateien in Python herunter
Format in Python
Bildformat in Python
Einfaches Formatieren von JSON mit Python
So laden Sie Dateien von Selenium of Python in Chrome herunter
Finden Sie das Datum dieser Woche in einem beliebigen Format mit Python
Übersetzt mit Googletrans in Python
Verwenden des Python-Modus in der Verarbeitung
Verschieben von CSV-Dateien mit Python Teil 1
[Python] Laden von CSV-Dateien mit Pandas
Vorsichtsmaßnahmen bei der Verwendung von Pit mit Python
Formatieren Sie Python-Code automatisch mit Vim
Behandeln Sie Daten im NetCDF-Format mit Python
Behandeln Sie das GDS II-Format mit Python
Versuchen Sie es mit LevelDB mit Python (plyvel)
Verwendung globaler Variablen in Python-Funktionen
Sortieren Sie große Textdateien in Python
Mal sehen, wie man Eingaben in Python verwendet
Gesamtleistung in Python (mit Funktools)
Lesen Sie Dateien parallel zu Python
Exportieren und Ausgeben von Dateien in Python
Handschriftliche Zeichenerkennung mit KNN in Python
Versuchen Sie es mit LeapMotion mit Python
Suche nach Tiefenpriorität mit Stack in Python
Bei Verwendung regulärer Ausdrücke in Python
Extrahieren Sie mit Python Zeichenfolgen aus Dateien
GUI-Erstellung in Python mit tkinter 2
Laden Sie Python herunter
Mausbedienung mit Windows-API in Python
[AWS] Verwenden von INI-Dateien mit Lambda [Python]
Hinweise zur Verwendung von cChardet und python3-chardet in Python 3.3.1.
Versuchen Sie es mit der Wunderlist-API in Python
GUI-Erstellung in Python mit tkinter Teil 1
Holen Sie sich Suica Balance in Python (mit libpafe)
Übung, dies in Python zu verwenden (schlecht)
Hash-Passwörter langsam mit bcrypt in Python
Versuchen Sie, die Kraken-API mit Python zu verwenden
Verwenden von venv in der Windows + Docker-Umgebung [Python]
Suchen Sie nach Dateien wie Linux Find in Python
[FX] Hit oanda-API mit Python mit Docker
Geben Sie Anmerkungen für Python2 in Stub-Dateien ein!
Tweet mit der Twitter-API in Python
[Python] [Windows] Serielle Kommunikation in Python über DLL
Ich habe versucht, die Bayes'sche Optimierung von Python zu verwenden
Melden Sie sich mit Anforderungen in Python bei Slack an
Referenz der INI-Datei in Python oder Ruby
Holen Sie sich Youtube-Daten in Python mithilfe der Youtube-Daten-API
Laden Sie mit Python Dateien im Web herunter
Verwenden physikalischer Konstanten in Python scipy.constants ~ Konstante e ~
Scraping von Websites mit JavaScript in Python
Laden Sie Bilder von der URL-Liste in Python herunter
Entwicklung eines Slack Bot mit Python mit chat.postMessage
Lesen und schreiben Sie JSON-Dateien mit Python
Beispiel für den Umgang mit EML-Dateien in Python
Schreiben Sie mit f2py ein Python-Modul in fortran
Zeichnen Sie mit graphviz eine Baumstruktur in Python 3
Hinweise zur Verwendung von Python (Pydev) mit Eclipse