Сказать wget не URL паука, соответствующему шаблону?

  1. У Вас могли бы быть правила брандмауэра, блокирующие доступ. Проверьте вывод iptables -L. Возможно, все заблокировано кроме ssh.

  2. Сервисы не могли бы слушать в правильных интерфейсах или портах. Проверьте вывод netstat -ntl.

Если эти команды не помогают пониманию его, то добавьте их вывод в своем вопросе. Также добавьте вывод ifconfig.

8
11.06.2014, 08:03
2 ответа

После некоторых проб и ошибок, я понимаю, что решение заключается в следующем: --reject-regex так:

wget -r --reject-regex page --spider --no-check-certificate -w 1 http://mysite.com/

urlregex не должен содержать wildcard и поэтому *page* является недействительным, но page -действительным.

10
27.01.2020, 20:11

Из man wget:

-R rejlist --reject rejlist
           Specify comma-separated lists of file name suffixes or patterns to
           accept or reject.

Эта опция будет отвергать только файлы -, которые соответствуют шаблону.

Строго говоря, в URL page указан параметр запроса, а не последняя часть пути (например, имя файла).


Вы можете захотеть удалить все URL, которые wget нашел (например, grep the log for all downloaded URLs), удалить те URL, которые вас не устраивают (например, grep -v) и, наконец, заставить wget извлечь оставшиеся URL. Например:

# dump the whole website
wget ... -P dump -o wget.log  ...

# extract URLs from the log file
cat wget.log | grep http | tr -s " " "\012" | grep http >urls

# excludes URLs with the word page anywhere in it
cat urls | grep -v page >urls 

# delete previous dump, since it probably contains unwanted files
rm -rf dump

# Fetch URLs
cat urls | xargs wget -x

Вы можете захотеть добавить другие опции wget (например, --no-check-certificate) в соответствии с вашими потребностями.

1
27.01.2020, 20:11

Теги

Похожие вопросы