我想抓取一个网站来构建其站点地图。
问题是,该网站使用 htaccess 文件来阻止蜘蛛,因此以下命令仅下载主页(index.html)并停止,尽管它确实包含其他页面的链接:
wget -mkEpnp -e robots=off -U Mozilla http://www.acme.com
由于我使用浏览器访问网站的其余部分没有问题,我认为“-e robots=off -U Mozilla”选项不足以让 wget 假装它是浏览器。
还有其他我应该了解的选择吗? wget 自己处理cookie吗?
编辑: 我将它们添加到 wget.ini,但无济于事:
hsts=0
robots = off
header = Accept-Language: en-us,en;q=0.5
header = Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
header = Connection: keep-alive
user_agent = Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:40.0) Gecko/20100101 Firefox/40.0
referer = /
编辑:找到了。
主页中链接的页面位于远程服务器上,因此 wget 会忽略它们。只需添加“--span-hosts”来告诉 wget 去那里,如果你想限制蜘蛛抓取到该域,则添加“-D www.remote.site.com”。
您可能希望将用户代理设置为不仅仅是 Mozilla 的内容,例如:
wget --user-agent="Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0"