Мне нужно решение для экспорта всех гиперссылок на веб-странице (на веб-странице, а не со всего сайта) и способ указать ссылки, которые я хочу экспортировать, например, только гиперссылки, начинающиеся с https://superuser.com/questions/, за исключением все остальное.
Экспорт в виде текстового файла предпочтителен, и результаты должны отображаться один под другим, по одному URL на строку:

https://superuser.com/questions/1  
https://superuser.com/questions/2  
https://superuser.com/questions/3
[...]

2 ответа2

2

Если вы работаете в системе Linux или Unix (например, FreeBSD или macOS), вы можете открыть сеанс терминала и выполнить следующую команду:

wget -O - http://example.com/webpage.htm | \
sed 's/href=/\nhref=/g' | \
grep href=\"http://specify.com | \
sed 's/.*href="//g;s/".*//g' > out.txt

В обычных случаях в одной строке может быть несколько тегов <a href> , поэтому сначала их нужно обрезать (первый sed добавляет новые строки перед каждым ключевым словом href чтобы убедиться, что в одной строке не более одного из них).
Чтобы извлечь ссылки из нескольких похожих страниц, например, из всех вопросов на первых 10 страницах этого сайта, используйте цикл for .

for i in $(seq 1 10); do
wget -O - http://superuser.com/questions?page=$i | \
sed 's/href=/\nhref=/g' | \
grep -E 'href="http://superuser.com/questions/[0-9]+' | \
sed 's/.*href="//g;s/".*//g' >> out.txt
done

Не забудьте заменить http://example.com/webpage.htm фактическим URL страницы, а http://specify.com - предыдущую строку, которую вы хотите указать.
Вы можете указать не только предыдущую строку для URL-адреса для экспорта, но также и шаблон регулярного выражения, если вы используете egrep или grep -E в приведенной выше команде.
Если вы используете Windows, рассмотрите возможность использования Cygwin. Не забудьте выбрать пакеты Wget , grep и sed .

0

Если вы согласны с использованием Firefox для него, вы можете добавить дополнение Snap Links Plus

  1. Удерживая правую кнопку мыши, перетащите выделенную область вокруг ссылок.

  2. Когда они подсвечены, нажмите и удерживайте Control, отпуская правую кнопку мыши.

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