从HTMLstring中parsing所有URL的最好方法是什么?

在接下来的几个星期里,我正在编写Node的networking爬虫。 在我的原型中,我使用jsdom来查看页面,然后search所有锚点并将href添加到我的爬行列表中。 我意识到,如果我只是从源代码parsing任何URL(例如,文本中的URL),我可能会发现更多的URL。 我想知道是否有任何好的JavaScript库在那里使用正则expression式或其他。

作为一个方面说明:这是一个坏主意?

更新:

虽然我最初select克里斯的答案下面,我有点触发快乐,事实certificate。 不幸的是我没有结束使用node.io. 我发现它有点臃肿,并没有真正关注我正在尝试做什么。 目前,我正在使用soupselect + htmlparser获取页面上任何锚点的href值,并且我很高兴现在使用这个解决scheme。

检查node.io ,这是一个优秀的node.js的抓取和处理框架。

或者,也可以使用YUI3来parsing和处理来自节点的HTML文档。

在查找url时,我使用这个正则expression式:/( /(https?:\/\/)([^.\/]+(?:\.[^.\/]+)+)(\/.*)/ : /(https?:\/\/)([^.\/]+(?:\.[^.\/]+)+)(\/.*)/ : /(https?:\/\/)([^.\/]+(?:\.[^.\/]+)+)(\/.*)/

然后你有子模式:

  1. 协议
  2. path

不知道它是如何工作的爬虫,但它从来没有失败过。