Как я могу использовать wget для загрузки списка URL-адресов и сортировки их по второму полю данных? - PullRequest
0 голосов
/ 06 мая 2019

Я очень плохо знаком с программированием или чем-то подобным.У меня есть список из нескольких тысяч URL в Excel.Каждый URL связан с одним из примерно 300 номеров.У меня это есть, так как один столбец - это URL, а следующий столбец - это номер, с которым связан этот URL.Например, у меня есть пять URL-адресов, связанных с номером 1, четыре URL-адреса, связанных с номером 2, и т. Д. Я пытаюсь загрузить файлы, которые находятся по URL-адресу, но поддерживаю свою организацию с помощью связанных номеров.Поэтому я пытаюсь получить все файлы из URL-адресов, связанных с 1, в папку, все файлы образуют URL-адреса, связанные с 2, в отдельной папке и т. Д.

Я считаю, что использование сценариев bash и wgetпуть к этому, но я изо всех сил пытаюсь выяснить правильную серию команд.Я был бы признателен за любую помощь, которую могли бы дать мне люди.

Я не ожидаю, что кто-нибудь сделает это для меня, но я был бы признателен за любые полезные советы или полезные ресурсы или руководства, на которые люди могли бы указывать мне.Спасибо!

Я считаю, что сохранение листа Excel в качестве CSV было бы частью правильного пути вперед, но я очень мало представляю, что я делаю.

1 Ответ

1 голос
/ 06 мая 2019

Обычно люди публикуют то, что они пробовали до сих пор.Но так как вы новенький здесь, давайте посмотрим, сможем ли мы, по крайней мере, оторваться от вас.

#!/bin/bash

# Example input file urls.csv
# http://foo.com,2
# http://bar.com,7
# Reference for the "wget" command I used - https://www.guyrutenberg.com/2014/05/02/make-offline-mirror-of-a-site-using-wget/

#
# Split the file on the comma and loop through the url / ID pairs
#
awk -F, '{print $1" "$2}' urls.csv | while read url id
do
   echo "Getting url $url ID $id"
   #
   # Make the directory if it doesn't exist, and change directory into it
   #
   if [ ! -d $id ]; then
      mkdir $id
   fi
   cd $id
   #
   # Execute the wget
   #
   wget --mirror --convert-links --adjust-extension --page-requisites --no-parent $url
   #
   # Change directory back up to the parent
   #
   cd ..
done
...