【问题标题】:Crawl website using wget and limit total number of crawled links使用 wget 抓取网站并限制抓取的链接总数
【发布时间】:2011-06-25 18:44:43
【问题描述】:
我想通过使用 wget 工具来了解有关爬虫的更多信息。我有兴趣爬取我部门的网站,并在该网站上找到前 100 个链接。到目前为止,下面的命令就是我所拥有的。如何限制爬虫在 100 个链接后停止?
wget -r -o output.txt -l 0 -t 1 --spider -w 5 -A html -e robots=on "http://www.example.com"
【问题讨论】:
标签:
bash
scripting
web-crawler
wget
【解决方案1】:
你不能。 wget 不支持这个,所以如果你想要这样的东西,你必须自己写一个工具。
您可以获取主文件,手动解析链接,并逐个获取它们,限制为 100 项。但这不是 wget 支持的东西。
您也可以查看用于网站抓取的 HTTrack,它有很多额外的选项:http://www.httrack.com/
【解决方案2】:
- 创建一个 fifo 文件 (mknod /tmp/httpipe p)
- 做一个叉子
- 在孩子做
wget --spider -r -l 1 http://myurl --output-file /tmp/httppipe
- 在父亲:逐行阅读
/tmp/httpipe
- 解析输出
=~ m{^\-\-\d\d:\d\d:\d\d\-\- http://$self->{http_server}:$self->{tcport}/(.*)$}, print $1
- 计算行数; 100行后关闭文件,它会破坏管道