У меня есть Баш скрипт, который получает все файлы XML из robots.txt файла и печатает ответы HTTP сервера для выходного файла:Bash - Карта сайт XML теста, LOC
#!/usr/bin/env bash
#usage ./script.sh robots.txt
while read url
do
urlstatus=$(curl -o /dev/null --silent --head --write-out '{http_code}' "$url")
echo "$url $urlstatus" >> results.txt
done < $1
образца роботов .txt может выглядеть так:
http://www.youraddress.com/file1.xml
http://www.youraddress.com/file2.xml
http://www.youraddress.com/file3.xml
Пример выход:
http://www.youraddress.com/file1.xml 200
http://www.youraddress.com/file2.xml 200
http://www.youraddress.com/file3.xml 200
Но каждый XML-файл имеет внутри loc теги.
Внутри XML:
<url>
<loc>
http://myother.address.com/
</loc>
<changefreq>daily</changefreq>
<priority>0.8</priority>
Все, что мне нужно сделать, чтобы получить от каждого файла: file1, file2 ... каждый URL из Loc теги и печати также ответ HTTP-сервера ,
Может кто-нибудь мне подскажет, поможет ли код, основанный на этом скрипте?
Вы хотите код HTTP и '' значение из извлеченного URL? Вместо исходного URL и HTTP-кода? Вы пробовали что-нибудь для этого? (Вам нужно будет отказаться от удаления документа, который вы загружаете как начало.) –
@EtanReisner значения состоят из URL-адресов, поэтому я также хочу получить ответы этих ссылок. Если ОК - 200, иначе 404. –
просто попробуйте, вы хотите извлечь url внутри loc и сделать некоторые завитки с ним? – sjsam