尝试确定给定域下的所有有效URL,而不在本地镜像站点。
人们通常希望下载所有页面,但我只想获取给定域名下的直接网址列表(例如www.example.com
),这类似于
www.example.com/page1
www.example.com/page2
有没有办法使用wget
来执行此操作?还是有更好的方法吗?
答案 0 :(得分:2)
好的,我必须找到自己的答案:
我使用的工具是 httrack 。
httrack -p0 -r2 -d www.example.com
甚至还有 - %L将扫描的URL添加到指定的文件,但它似乎不起作用。但这不是问题,因为在hts-cache目录下,您可以找到名为 new.txt 的 TSV 文件,其中包含所有访问过的网址以及有关它的一些其他信息。我可以使用以下python代码从中提取URL:
with open("hts-cache/new.txt") as f:
t = csv.DictReader(f,delimiter='\t')
for l in t:
print l['URL']
答案 1 :(得分:1)
目前还不清楚是否要使用wget来确定这些网址,但要回答有关不保存网站的问题,可以使用“--output-document = file”或简单地使用“-O file”。
wget -O /dev/null <your-site>
如果你有一个URL列表,并想检查它们是否有效,你可以检查一个大于0的退出代码.I.e。
while read URL
do
wget -O /dev/null $URL >/dev/null 2>&1
[ $? -gt 0 ] && echo "ERROR retrieving $URL"
done < your-URL-list.txt