У меня проблема с wget
, Мне нужно загрузить весь сайт с изображениями и другими файлами, на которые есть ссылки на основных страницах, я использую следующие параметры:
wget --load-cookies /tmp/cookie.txt -r -l 1 -k -p -nc 'https://www.example.com/mainpage.do'
(-l
1 используется для тестирования, мне может понадобиться перейти на уровень 3 или даже 4)
Проблема в том, что я не могу понять, как обойти случайный параметр GET, который добавляется после некоторых циклов рекурсии, поэтому мой окончательный результат в /tmp
папка такая:
/tmp/www.example.com/mainpage.do
/tmp/www.example.com/mainpage.do?cx=0.0340590343408
/tmp/www.example.com/mainpage.do?cx=0.0348934786475
/tmp/www.example.com/mainpage.do?cx=0.0032878284787
/tmp/www.example.com/mainpage.do?cx=0.0266389459023
/tmp/www.example.com/mainpage.do?cx=0.0103290334732
/tmp/www.example.com/mainpage.do?cx=0.0890345378478
Поскольку страница всегда одна и та же, мне не нужно ее получать в другой раз, я пробовал с -nc
вариант, но он не работает, я также пробовал использовать -R
(отклонить), но он работает только с расширениями файлов, а не с параметрами URL.
Я подробно просмотрел руководство по wget, но, похоже, не нашел способа сделать это; использовать wget не обязательно, если вы знаете, как это сделать по-другому, они приветствуются.
Напишите локальный прокси-сервер, который изменяет ответы, отправляемые wget.
Предполагая, что ваши URL-адреса находятся в таких ссылках, как:
<a href="/path/to/mainpage.do?cx=0.0123412341234">
Затем вы можете запустить прокси-сервер Ruby следующим образом:
require 'webrick/httpproxy'
s = WEBrick::HTTPProxyServer.new(
:Port => 2200,
:ProxyContentHandler => Proc.new{|req,res|
res.body.gsub!(/mainpage.do?cz=[0-9\.]*/, "mainpage.do")
}
)
trap("INT"){ s.shutdown }
s.start