大学のウェブサイトから多数のPDFファイルをダウンロードするには、wgetを使用する必要があります(すべてのファイルを収集して整理することは不可能ではありませんが、退屈です)。リンクは次のとおりです。
http://example.edu/path_to_directory/directory/foobar.pdf
次のコマンドを使用しています。
wget -mk --no-check-certificate --load-cookies cookies.txt http://example.edu/arbitrary_link_to_directory/directory/
残念ながら、PDFを含む実際のディレクトリはそれぞれエラーページにリダイレクトされ、私が取得するのはhtmlファイルとcssファイルです。
http://example.edu/path_to_directory/directory/
ブラウザで次にリダイレクトされます。
http://example.edu/path_to_directory/error/error.html
wgetを使用して問題のすべてのファイルをダウンロードできますか?
答え1
Webサイトから複数のファイルをダウンロードするのが簡単ではない(または積極的に困難になる)場合は、次のファイルURLのリストを生成します。
lynx -dump -listonly $URL | awk '/\.pdf/ {print $2}' > /tmp/pdflist.txt
その後、通常ファイルを編集してvi
ダウンロードしたくないアイテムを削除し、最後にwgetを使用してすべてのアイテムをインポートします。
wget --input-file=/tmp/pdflist.txt
これは単純な作業にうまく機能し、通常は中程度の困難な作業には十分です...しかし、複雑なHTMLを解析し、リンク(Cookieを使用することができます)に従うことに関連する困難な作業の場合は、このモジュールを使用してWebボット(別名)perl
を作成します。libwww-perl
軽量水圧)。
答え2
大学のウェブサイトにすべてのPDFへのリンクを含むページはありますか?それともPDFファイル名のリストをどうやって知ることができますか?
この場合は、プログラムでページからリンクを取得し、リストを自動的に繰り返し、wgetまたは他のツールを使用してダウンロードするscraperというスクリプトを作成する必要があります。スクレーパーを作成するには、PHPまたはPythonを使用することをお勧めします。元のウェブサイトで最終ページを簡単に管理できます。 PHPを使用している場合は、次のコマンドを使用して簡単にファイルをダウンロードできます。
file_put_contents('destination_filename', file_get_contents('source_url');