wgetを使用して、独自のリダイレクトディレクトリから必要な数のファイルをダウンロードしてください。

wgetを使用して、独自のリダイレクトディレクトリから必要な数のファイルをダウンロードしてください。

大学のウェブサイトから多数の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');

関連情報