Если вы работаете в системе 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
.