2016-04-29 7 views
1

Ich habe versucht, alle ZIP-Dateien auf dieser Website auf einen EC2-Server herunterzuladen. Es erkennt jedoch die Links nicht und lädt nichts herunter. Ich denke, es liegt daran, dass die shtml-Datei erfordert, dass SSI aktiviert ist, und das verursacht irgendwie ein Problem mit wget. Aber ich verstehe das Zeug nicht wirklich.Mit wget alle zip-Dateien auf einer shtml-Seite herunterladen

Dies ist der Code, den ich erfolglos verwendet habe.

wget -r -l1 -H -t1 -nd -N -np -A.zip -erobots=off http://www.fec.gov/finance/disclosure/ftpdet.shtml#a2015_2016 

Danke für jede Hilfe, die Sie zur Verfügung stellen können!

+0

Die Zip-Links sind nicht im Quellcode enthalten, sie werden über Javascript generiert. Die Dateiliste befindet sich in http://www.fec.gov//finance/disclosure/tables/foia_files_summary.xml unter dem Knoten '' –

+1

@StanO: Werfen Sie einen Blick auf: ftp: //ftp.fec.gov/FEC/2016/ ftp://ftp.fec.gov/FEC/2014/ ftp://ftp.fec.gov/FEC/2012/ ftp://ftp.fec.gov/ FEC/2010/... oder ftp://ftp.fec.gov/FEC/ – Cyrus

Antwort

2

Die Zip-Links sind nicht im Quellcode vorhanden, deshalb können Sie sie nicht über wget herunterladen, sie werden über javascript generiert. Die Dateiliste „befindet sich“ innerhalb http://fec.gov//finance/disclosure/tables/foia_files_summary.xml unter Knoten <fec_file status="Archive"></fec_file>

Sie ein Script-Code können die xml Datei und wandeln die Knoten mit den tatsächlichen Verbindungen zu analysieren, weil sie ein Muster haben.


UPDATE:

Wie @cyrus erwähnt, sind die Dateien auch auf ftp.fec.gov/FEC/, Sie wget -m zur Spiegelung des ftp und -A zip verwenden können, um den Download zu beschränken Dateien zip, das heißt:

wget -A zip -m --user=anonymous [email protected] ftp://ftp.fec.gov/FEC/ 

Oder wget -r

wget -A zip --ftp-user=anonymous [email protected] -r ftp://ftp.fec.gov/FEC/* 
+0

Danke für die schnelle Antwort! Um nur die ZIP-Dateien herunterzuladen, nach denen ich ursprünglich gesucht habe, muss ich in die Unterordner 1980 bis 2014 (gezählt mit 2) gehen. Gibt es eine Option, die ich hinzufügen könnte, um das zu tun? Kann ich auch die -A-Zip-Option kombinieren, um nur die Zip-Dateien herunterzuladen? – StanO

+1

@StanO: Mit GNU bash 4: 'für i in {1980.2014..2}; echo $ {i}; done' – Cyrus

+0

Ja, Sie können '-A' verwenden, um das zu tun (getestet), ich werde meine Antwort aktualisieren, um dies zu berücksichtigen. –

Verwandte Themen