Загрузка списка файлов с помощью wget из index.html url

#wget

Вопрос:

Я работаю над курсом анализа данных, и часть его требует загрузки списка файлов. Я потратил больше времени, пытаясь понять, как это сделать с помощью wget, чтобы я мог просто загрузить их индивидуально, но теперь это стало учебным опытом. Это URL — адрес файлов

https://divvy-tripdata.s3.amazonaws.com/index.html

Каждый файл представляет собой zip-файл, поэтому я попытался использовать

wget -r -l1 -H -t1 -nd -A.zip -эроботы=выключены https://divvy-tripdata.s3.amazonaws.com/ и с /index.html

Но каждый раз, когда он загружает только файл index.html.tmp, который затем автоматически удаляется. Есть какие-нибудь идеи?

РЕШЕНИЕ: После слишком долгого времени я понял, что страница использует jquery для отображения ссылок, и поэтому get на самом деле не смог найти ссылки на index.html. Решение для выполнения этой работы приведено ниже:

 wget https://divvy-tripdata.s3.amazonaws.com/ -q -O - |
 

Это извлекает XML-данные из index.html стр.

 grep -Eoi '<Key>[^>] </Key>' |
 

Удаляет все, кроме ключевого тега, который содержал имя файла и является правильным концом URL-адреса для загрузки файла

 grep -Eoi '[2D].*.zip' |
 

Все необходимые файлы начинались либо с 2, либо с D, при этом выводилось только имя файла и удалялся тег.

 sed 's/^/https://divvy-tripdata.s3.amazonaws.com//' > linksfinal.txt
 

Добавляет первую часть URL — адреса и сохраняет в текстовый файл.

 wget -i linksfinal.txt
 

Запускает wget, используя вновь сформированные ссылки в файле, которые загрузили все файлы без проблем.

Комментарии:

1. Что произойдет, если вы позволите большей глубине? Например, заменить -l1 с помощью --level=3

2. К сожалению, это тоже не сработало. НО я только что понял, что это потому, что ссылки динамически извлекаются через jquery, поэтому, когда wget выполняет поиск, он не находит ссылки. Я опубликую решение в комментарии.

Ответ №1:

РЕШЕНИЕ: После слишком долгого времени я понял, что страница использует jquery для отображения ссылок, и поэтому get на самом деле не смог найти ссылки на index.html. Решение для выполнения этой работы приведено ниже:

 wget https://divvy-tripdata.s3.amazonaws.com/ -q -O - |
 

Это извлекает XML-данные из index.html стр.

 grep -Eoi '<Key>[^>] </Key>' |
 

Удаляет все, кроме ключевого тега, который содержал имя файла и является правильным концом URL-адреса для загрузки файла

 grep -Eoi '[2D].*.zip' |
 

Все необходимые файлы начинались либо с 2, либо с D, при этом выводилось только имя файла и удалялся тег.

 sed 's/^/https://divvy-tripdata.s3.amazonaws.com//' > linksfinal.txt
 

Добавляет первую часть URL — адреса и сохраняет в текстовый файл.

 wget -i linksfinal.txt
 

Запускает wget, используя вновь сформированные ссылки в файле, которые загрузили все файлы без проблем.