我正在尝试将该网站的爬虫深度设为2,并收集所有链接(网址)。一个简单的任务,但这似乎是不可能的,我必须丢失一些东西吗?我没有网址,只是一个空的文本文件。这是我正在使用的最新命令(我知道是混乱的):
wget --spider --force-html --span-hosts --user-agent =“ Mozilla / 5.0(X11; Fedora; Linux x86_64; rv:52.0)Gecko / 20100101 Firefox / 52.0” -np- limit-rate = 20k -e robots = off --wait = 3 --random-wait -r -l2 https://en.wikibooks.org/wiki/C%2B%2B_Programming 2>&1 | grep'^-'| awk'{print $ 3}'| grep -v'。((css \ | js \ | png \ | gif \ | jpg)$'|排序uniq> urls.txt
有什么想法吗?
答案 0 :(得分:0)
我建议您分两步进行操作,以提高可读性并减少混乱。
对于#1-
wget --spider --force-html --span-hosts --user-agent =“ Mozilla / 5.0(X11; Fedora; Linux x86_64; rv:52.0)Gecko / 20100101 Firefox / 52.0” -np- limit-rate = 20k -e robots = off --wait = 3 --random-wait -r -l2 https://en.wikibooks.org/wiki/C%2B%2B_Programming -o wget.log&
#1完成后,您可以参加#2。
对于#2-
grep http wget.log | grep -v“ [以下]” | awk'{print $ 3}'| grep -vE“ .css | .js | .png | .gif | .jpg” |排序-u> urls.txt
这将为您提供所需的内容。
请注意,#1将下载找到的所有内容,并且由于您要深入2个级别,因此可能会有大量数据。如果您不想下载所有内容(例如,如果您打算使用urls.txt下载内容),则可以在wget中使用“ --delete-after”选项。