使用wget来伪造浏览器?

问题描述 投票:0回答:1

我想抓取一个网站来构建其站点地图。

问题是,该网站使用 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”。

wget
1个回答
29
投票

您可能希望将用户代理设置为不仅仅是 Mozilla 的内容,例如:

wget --user-agent="Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0"
© www.soinside.com 2019 - 2024. All rights reserved.