Wget, как рекурсивно скачать сайт - PullRequest
0 голосов
/ 17 октября 2019

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

Я пытался рекурсивно делать это через wget -r --no-parent example.com, но, похоже, загружает также png, css и xml, которые, как мне кажется, мне не нужны для моего поиска

wget -r https://stackoverflow.com
--2019-10-17 13:11:47--  https://stackoverflow.com/
Resolving stackoverflow.com (stackoverflow.com)... 151.101.65.69, 151.101.1.69, 151.101.129.69, ...
Connecting to stackoverflow.com (stackoverflow.com)|151.101.65.69|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 115049 (112K) [text/html]
Saving to: ‘stackoverflow.com/index.html’

stackoverflow.com/index.html                100%[========================================================================================>] 112.35K   340KB/s    in 0.3s    

2019-10-17 13:11:48 (340 KB/s) - ‘stackoverflow.com/index.html’ saved [115049/115049]

Loading robots.txt; please ignore errors.
--2019-10-17 13:11:48--  https://stackoverflow.com/robots.txt
Reusing existing connection to stackoverflow.com:443.
HTTP request sent, awaiting response... 200 OK
Length: 2094 (2.0K) [text/plain]
Saving to: ‘stackoverflow.com/robots.txt’

stackoverflow.com/robots.txt                100%[========================================================================================>]   2.04K  --.-KB/s    in 0s      

2019-10-17 13:11:48 (5.23 MB/s) - ‘stackoverflow.com/robots.txt’ saved [2094/2094]

--2019-10-17 13:11:48--  https://stackoverflow.com/opensearch.xml
Reusing existing connection to stackoverflow.com:443.
HTTP request sent, awaiting response... 200 OK
Length: 617 [text/xml]
Saving to: ‘stackoverflow.com/opensearch.xml’

stackoverflow.com/opensearch.xml            100%[========================================================================================>]     617  --.-KB/s    in 0s      

2019-10-17 13:11:49 (20.2 MB/s) - ‘stackoverflow.com/opensearch.xml’ saved [617/617]

--2019-10-17 13:11:49--  https://stackoverflow.com/feeds

Есть ли другой оптимальный способ сделать это?

Спасибо

1 Ответ

0 голосов
/ 17 октября 2019

WGET имеет несколько опций, которые могут обеспечить фильтрацию.

'--accept ACCLST' и '--reject REJLIST' могут использоваться для указания суффиксов файлов для принятия / отклонения. Это может быть использовано для ограничения по типам файлов - исключение изображений, CSS и т. Д.

Невозможно оценить контент путем поиска по ключевым словам (например, «поиск») без его загрузки. Можно рассмотреть два варианта:

  1. Загрузите все, затем удалите (или проигнорируйте) любой файл, не соответствующий критериям поиска.
  2. Используйте механизм сценариев (python scrapy, Perl) для написания настроенного паука. Гораздо больше работы, но она обеспечит точную функциональность.

Примечание: попробуйте использовать «--mirror» вместо «-r». Он также активирует метку времени, что может помочь сократить время повторного запуска.

...