Не сохранять ссылки в нужном формате
Когда я использую браузер для сохранения этой страницы: http://maine.craigslist.org/fuo/ ссылки сохраняются таким образом, что они ссылаются на контент. как это: href="http://maine.craigslist.org/fuo/4323535885.html"
когда я пытаюсь использовать wget, ссылки
$ wget --no-parent maine.craigslist.org/fuo
сохранен как: href="/fuo/4305913395.html"
Я пробовал варианты:
--spider
--page-requisites
--user-agent="Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:27.0) Gecko/20100101 Firefox/27.0"
но ссылки все выходят без привязанного URL.
У меня остальная часть сценария работает, чтобы разобрать мое местоположение и создать новый список ссылок на мебель в моем районе. Но я не могу понять, как получить тот же вывод, что и при сохранении страницы через Firefox.
Я думал, что использование Wget будет проще всего. Возможно, это не правильно. Если я смогу добиться того же эффекта с помощью другого программного обеспечения, если я смогу написать сценарий, чтобы он работал, я буду счастлив.
2 ответа
--convert-links
Вариант должен делать то, что вы ищете:
wget --convert-links --no-parent maine.craigslist.org/fuo
Более подробная информация об этой опции и о том, что она делает, приведена ниже (скопировано с man wget
):
--convert-ссылки После завершения загрузки преобразуйте ссылки в документе сделать их пригодными для местного просмотра. Это влияет не только на видимые гиперссылки, но любая часть документа, которая ссылается на внешний контент, такой как встроенные изображения, ссылки на таблицы стилей, гиперссылки на не-HTML контент и т. д. Каждая ссылка будет изменена одним из двух способов: · Ссылки на файлы, которые были загружены Wget, будут изменено для ссылки на файл, на который они указывают как относительную ссылку. Пример: если загруженный файл /foo/doc.html ссылается на /bar/img.gif, также скачал, тогда ссылка в doc.html будет быть изменен, чтобы указать на../bar/img.gif. Этот вид преобразование работает надежно для произвольных комбинаций каталоги. · Ссылки на файлы, которые не были загружены Wget, будут изменить имя хоста и абсолютный путь место, на которое они указывают. Пример: если загруженный файл /foo/doc.html ссылается на /bar/img.gif (или to ../bar/img.gif), затем ссылка в doc.html будет изменен, чтобы указать на http: //hostname/bar/img.gif. Благодаря этому локальный просмотр работает надежно: если связанный файл был загружен, ссылка будет ссылаться на его локальное имя; если бы это было не загружен, ссылка будет указывать на полный интернет-адрес вместо представления неработающей ссылки. Тот факт, что бывший ссылки преобразуются в относительные ссылки, что позволяет перемещать скачал иерархию в другой каталог.
Если вы просматриваете источник веб-страницы в своем браузере, вы увидите, что ссылки в документе являются относительными. Браузер конвертирует их автоматически, но wget не может этого сделать.
Чтобы страница правильно отображалась в браузере, можно использовать HTML-тег <base href="http://maine.craigslist.org/fuo">
в разделе заголовка загруженных файлов и все ссылки будут указывать на правильное абсолютное местоположение. Вы можете сделать это автоматически в вашем скрипте.
Если вы хотите, чтобы ваш скрипт выполнял дальнейшие действия над ссылками, лучшим решением было бы добавить скрипт к базовому URL перед каждой ссылкой.