Загрузка нескольких файлов PDF с bash - PullRequest
0 голосов
/ 18 января 2020

Я хотел бы загрузить с https://hebrewbooks.org/ все бесплатные книги, используя простой скрипт.

Каждая книга (52 000 из них) имеет уникальный номер c номер назначены. Например: https://hebrewbooks.org/1 https://hebrewbooks.org/3 https://hebrewbooks.org/52000

Но многие номера были пропущены или были удалены.

Обычно посетитель нажимает кнопку загрузки, которая возвращает: (номер книги 52000)

https://download.hebrewbooks.org/downloadhandler.ashx?req=52000

Или (для книги номер 1)

https://download.hebrewbooks.org/downloadhandler.ashx?req=1

Я хотел бы загрузить все файлы на локальный диск без необходимости запрашивать каждый файл индивидуально в браузере и т. д. c.

Я знаю, что это может быть достигнуто с помощью простого сценария (даже сценария bash).

Может кто-нибудь посоветовать мне, где искать или где найти похожая проблема, которая была решена.

Редактировать: я забыл важный вопрос. Как заставить скрипт изменить имя каждого загруженного файла с номера (например, 42000) на метаданные, включенные в каждый файл?

Ответы [ 2 ]

1 голос
/ 22 января 2020

Как уже упоминалось, wget будет хорошим инструментом для использования. Может быть, попробуйте использовать его в al oop?

#! /bin/bash

#iterate 52,000 times
for i in {1..52000}; do

  sleep 1s
  wget [local path] "https://download.hebrewbooks.org/downloader.ashx?req=${i}" 

  # $i is the current iteration, therefore collecting all 52,000

done

edit : Просто понял, что кто-то прокомментировал это по основному вопросу, но я оставлю это здесь для тех, кто не видеть их, как я.

0 голосов
/ 18 января 2020

Вы можете использовать wget для этой задачи:

wget /download/path/to/save/downloaded/file "https://download.hebrewbooks.org/downloader.ashx?req=book_number"

Дополнительная справка: https://askubuntu.com/questions/207265/how-to-download-a-file-from-a-website-via-terminal

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...