2011-03-21 117 views
1

当谈到这个话题时,我有点小气。我正在努力解决一个网站(userscript,以改善某些网络应用程序的用户界面),我需要从网址抓取链接。该网站有一个登录和密码系统,以进入实际的网站,我想开始抓住链接,一旦我进入主站点。从相同的域抓取HTML /链接

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

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

我想知道做到这一点的最佳方法。对不起,如果我的解释令人困惑。

+0

是否使用YQL ?使用YQL,您负责获取每个URL并分析HTML。内联框架与它无关。 – yonran 2011-03-21 22:00:37

回答

1

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

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

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

然后解析使用像一个正则表达式链接来源:

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

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

+0

为什么这次被拒绝? – 2011-03-21 21:18:46