获取列表的最快方法 来自本地主机网站上所有页面的值
我本质上是想抓取我的本地站点并创建所有标题和 URL 的列表,如下所示:
http://localhost/mySite/Default.aspx My Home Page http://localhost/mySite/Preferences.aspx My Preferences http://localhost/mySite/Messages.aspx Messages
我正在运行 Windows。 我对任何有用的东西都持开放态度——C# 控制台应用程序、PowerShell、一些现有工具等。我们可以假设该标签确实存在于文档中。
注意:我需要实际抓取文件,因为标题可能是在代码而不是标记中设置的。
I essentially want to spider my local site and create a list of all the titles and URLs as in:
http://localhost/mySite/Default.aspx My Home Page http://localhost/mySite/Preferences.aspx My Preferences http://localhost/mySite/Messages.aspx Messages
I'm running Windows. I'm open to anything that works--a C# console app, PowerShell, some existing tool, etc. We can assume that the tag does exist in the document.
Note: I need to actually spider the files since the title may be set in code rather than markup.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
一个快速而肮脏的 Cygwin Bash 脚本可以完成这项工作:
说明:这会找到根目录 $WWWROOT 下的每个 .aspx 文件,用空格替换所有换行符,以便
</code> 之间没有换行符> 和 <code>
,然后抓取这些标签之间的文本。A quick and dirty Cygwin Bash script which does the job:
Explanation: this finds every .aspx file under the root directory $WWWROOT, replaces all newlines with spaces so that there are no newlines between the
<title>
and</title>
, and then grabs out the text between those tags.我认为类似于 Adam Rosenfield 建议的 就是您想要的,但如果您想要实际的 URL,请尝试使用
wget
。 通过一些适当的选项,它将打印出您网站上所有页面的列表(并下载它们,也许您可以使用--spider
抑制)。wget
程序可通过普通的 Cygwin 安装程序获得。I think a script similar to what Adam Rosenfield suggested is what you want, but if you want the actual URLs, try using
wget
. With some appropriate options, it will print out a list of all the pages on your site (plus download them, which maybe you can suppress with--spider
). Thewget
program is avaliable through the normal Cygwin installer.好的,我对 Windows 不熟悉,但为了让您找到正确的方向:使用带有
在那里取回标题,或者如果可以的话,使用 XPath '/head/title' 取回标题。
Ok, I'm not familiar with Windows, but to get you in the right direction: use a XSLT transformation with
<xsl:value-of select="/head/title" />
in there to get the title back or if you can, use the XPath '/head/title' to get the title back.
我会使用上面详细介绍的 wget 。
确保您的网站上没有任何蜘蛛陷阱。
I would use wget as detailed above.
Be sure you don't have any spider traps on your site.
你应该考虑使用 scrapy shell
查看
http://doc.scrapy.org/intro/tutorial。 在控制台中的html
中放置如下内容:
hxs.x('/html/head/title/text()').extract()
如果你想要所有标题,你应该做一个蜘蛛......这真的很容易。
还可以考虑迁移到 Linux :P
you should consider using scrapy shell
check out
http://doc.scrapy.org/intro/tutorial.html
in console put something like this :
hxs.x('/html/head/title/text()').extract()
if you want all titles, you should do a spider...it really easy.
Also consider to move to linux :P