我基本上想爬取我的本地站点并创建一个包含所有标题和 URL 的列表,如下所示:
http://localhost/mySite/Default.aspx 我的主页
http://localhost/mySite/Preferences.aspx 我的首选项
http://localhost/mySite/Messages.aspx 消息
我正在运行 Windows。我愿意接受任何可行的方法——C# 控制台应用程序、PowerShell、一些现有工具等。我们可以假设该标签确实存在于文档中。
注意:我需要实际抓取文件,因为标题可能是在代码中设置的,而不是在标记中设置的。
最佳答案
一个快速而肮脏的 Cygwin Bash 脚本可以完成这项工作:
#!/bin/bash
for file in $(find $WWWROOT -iname \*.aspx); do
echo -en $file '\t'
cat $file | tr '\n' ' ' | sed -i 's/.*<title>\([^<]*\)<\/title>.*/\1/'
done
说明:这会找到根目录 $WWWROOT 下的每个 .aspx 文件,用空格替换所有换行符,以便
<title>
之间没有换行符。和 </title>
,然后抓取这些标签之间的文本。
关于screen-scraping - 从本地主机网站上的所有页面获取 <title> 值列表的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/335232/