【问题标题】:Grabbing html/links from same domain从同一域中获取 html/链接
【发布时间】:2011-07-19 23:21:33
【问题描述】:

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

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

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

我想知道执行此操作的最佳方法。对不起,如果我的解释令人困惑。

【问题讨论】:

  • 你在使用 YQL 吗?使用 YQL,您负责获取每个 URL 并分析 HTML。 iframe 与它无关。

标签: javascript url iframe hyperlink yql


【解决方案1】:

确实没有最好的方法。无论如何它都会很慢,因为您基本上是在浏览器中实现蜘蛛。

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

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

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

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

测试它们是否在同一个域中并重复...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-30
    • 2018-06-09
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    相关资源
    最近更新 更多