Wget Spider网站收集所有链接

时间:2018-10-02 14:33:05

标签: wget

我正在尝试将该网站的爬虫深度设为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

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我建议您分两步进行操作,以提高可读性并减少混乱。

  1. 进行爬网,并在日志文件中获取输出。
  2. 解析日志文件以获取所需的URL。

对于#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”选项。