#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, используя вновь сформированные ссылки в файле, которые загрузили все файлы без проблем.