1

У меня есть текстовый файл с несколькими ссылками HTML-файла. Мне нужно получить доступ к каждой ссылке в этом TXT и захватить ссылки, которые находятся внутри него и сохранить его в другой TXT-файл.

Как я могу сделать это для терминала Linux / shell script / python?

2 ответа2

2

Установите lynx , затем:

lynx -listonly -nonumbers -dump input.html > links.txt

Убедитесь, что ваш входной файл имеет расширение .html .

Например:

$ cat test.html
<a href="http://superuser.com">test</a>
http://google.com
$ lynx -listonly -nonumbers -dump test.html
http://superuser.com/

Если вместо этого у вас есть текстовый файл, который указывает на HTML-файлы, из которых вам нужно получить ссылки, вы можете повторить это:

while read -r file; do
  lynx -listonly -nonumbers -dump "$file" > "${file%.*}.txt
done < input.txt

Это будет читать каждую строку в текстовом файле, использовать lynx для извлечения ссылок и записывать их в текстовый файл с тем же базовым именем, что и HTML-файл, на который они указывают.

1

Разрежьте вопрос на 2 части.

1. Взять все страницы из текстового файла.

Предположим, что для целевой страницы логины или учетные данные не требуются.

Запустите на компьютере с Linux, Unix или Cygwin в Windows в терминальной сессии.

wget -i your.txt

2. Извлечь ссылки из файла

И затем для каждого загруженного файла, запустите

cat FILE | \
sed 's/href=/\nhref=/g' | \
grep href=\" | \
sed 's/.*href="//g;s/".*//g' >> out.txt

Если чего-то не хватает, запустите

sudo apt-get install coreutils wget grep sed

на Debian Linux, несмотря на то, что большинство систем поставляются с ними по умолчанию.

Если вы решите сделать это в сеансе Cygwin, не забудьте выбрать Core Utilities , Wget , grep и sed при установке.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .