Как вывести список доменов с помощью wget и отсканировать их с помощью grep - PullRequest
0 голосов
/ 17 января 2019

У меня есть список доменных имен, содержащихся в папке с именем "domains.txt", отформатированный так:

www.google.com
www.stackoverflow.com
www.apple.com
etc...

Я хочу выполнить команду wget, чтобы раскрыть копию каждого домена, указанного в "domains.txt", и сохранить его как страницу .html.

Я могу сделать это по отдельности, используя wget www.google.com, но мне интересно, вместо того, чтобы делать каждый по отдельности, могу ли я перебрать список и сохранить каждое доменное имя в виде отдельного файла .html?

Второе действие, которое я хочу выполнить, - это сканирование этих развернутых .html-файлов для ключевых слов, которые я содержал в текстовом файле с именем "Keywords.txt". Они отформатированы так:

first_keyword
second_keyword
third_keyword
etc...

В идеале, я хотел бы иметь вывод, который печатает имя домена в текстовый файл с пометкой "да", если было обнаружено, что оно содержит какое-либо из ключевых слов, содержащихся в "words.txt ". Если бы можно было напечатать, какие ключевые слова были найдены рядом с каждым доменом, это было бы замечательно, но было бы также просто «да». Я новичок в Linux и скриптах, поэтому любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 17 января 2019

Я предполагаю, что файлы не содержат кавычек. В противном случае мне понадобится больше кода для удаления кавычек.

domains.txt

www.google.com
www.stackoverflow.com
www.apple.com

keywords.txt

first_keyword
second_keyword
third_keyword

Вы можете попробовать что-то вроде этого

outfile=tmp.html

while IFS= read -r domain
do
    wget -O "$outfile" "$domain"

    if fgrep -q -f keywords.txt "$outfile"
    then
        echo "$domain" yes
    else
        echo "$domain" no
    fi

    rm "$outfile"

done < domains.txt
...