从同一个域抓取html /链接

时间:2011-03-21 20:05:39

标签: javascript url iframe hyperlink yql

当谈到这个话题时,我有点像菜鸟。我正在尝试解决一个网站(用户脚本以改善某些网络应用程序的ui),我需要从网址获取链接。该网站有一个登录和密码系统进入实际的网站,我想开始抓取链接进入主站点。

基本上在登录后的主站点上,有几个链接转到同一个域的不同页面(例如www.somedomain.com/page?=1),并且在每个页面中,有更多的链接和我我想现在去关闭所有子页面上的链接(并继续抓住孩子的链接,直到我要停止或者页面上没有链接)。

我正在考虑使用iframe转到每个网址然后抓取文本,但我很确定这是一个缓慢的解决方案。我已经查看了YQL,但是我用控制台测试的一些网址被网站阻止了;返回xml表示网站的某些部分拒绝访问。

我想知道最好的方法。对不起,如果我的解释令人困惑。

1 个答案:

答案 0 :(得分:1)

真的没有最好的办法。由于你基本上是在浏览器中实现蜘蛛,所以它会变慢。

由于页面位于同一个域中,因此您可以使用简单的ajax获取源代码。使用jQuery:

$.get('/path/to/page', function(data){
    // data = page source
});

然后使用正则表达式解析链接源:

/<a [^\>]+href="([^\"]+)"/g

测试他们是否在同一个域上并重复...