3

Как извлечь все внешние ссылки веб-страницы и сохранить их в файл?

Если есть какие-либо инструменты командной строки, это было бы здорово.

Это был совершенно тот же вопрос здесь, и ответ работал корректно для google.com, но по какой - то причине он не работает, например , с YouTube. Я объясню: давайте возьмем для примера эту страницу. Если я попытаюсь бежать

lynx -dump http://www.youtube.com/playlist?list=PLAA9A2EFA0E3A2039&feature=plcp | awk '/http/{print $2}' | grep watch > links.txt

затем он, в отличие от его использования на google.com, сначала выполняет дамп lynx, затем передает управление awk (по какой-то причине с пустым вводом) и, наконец, ничего не записывает в файл links.txt. Только после этого он отображает нефильтрованный дамп lynx, без возможности перенести его в другое место.

Заранее спасибо!

3 ответа3

3
lynx -dump 'http://www.youtube.com/playlist?list=PLAA9A2EFA0E3A2039&feature=plcp' | awk '/http/{print $2}' | grep watch > links.txt

работает. Вам нужно уйти от & в ссылке.

В исходной строке unescaped & выбросит Lynx на задний план, оставив пустой ввод для links.txt . Фоновый процесс будет по-прежнему записывать свои выходные данные в терминал, в котором вы находитесь, но, как вы заметили, он не будет выполнять перенаправление > (неоднозначность: какой процесс должен записывать в файл?).

Приложение: Я предполагаю опечатку в вашей исходной команде: начало и конец ' не должны присутствовать. В противном случае вы получите другие сообщения об ошибках, пытаясь выполнить несуществующую команду. Удаление тех дает поведение, которое вы описываете.

0

Используйте свой любимый веб-сайт и найдите «скрипт скребка веб-сайта» или «скрипт скребка веб-сайта» и любой язык программирования, который вам наиболее удобен. У вас есть тысячи и тысячи вариантов, так что сделайте самый подробный поиск вы можете.

0

Хотя есть много вариантов на выбор, я бы порекомендовал использовать python с BeautifilSoup - это дало бы вам полный контроль над процессом, включая следующие перенаправления, обработку самоподписанных / просроченных SSL-сертификатов, работу с недействительным HTML, извлечение ссылок только из конкретные блоки страниц и т. д.

Для примера проверьте эту ветку: https://stackoverflow.com/questions/1080411/retrieve-links-from-web-page-using-python-and-beautiful-soup

Установка BeautifilSoup так же проста, как и запуск pip install BeautifilSoup или easy_install BeautifilSoup если вы работаете в Linux. На win32, вероятно, проще всего использовать бинарные установщики.

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