【问题标题】:How to get an href from an external website?如何从外部网站获取href?
【发布时间】:2013-08-10 23:52:34
【问题描述】:

我正在尝试从我不是管理员的外部站点获取href 元素。

这个href的代码是这样的:

<a href="?form=397&amp&id=45950&amp&act=act">Action</a>

我只想得到一个:'?form=397&amp;amp&amp;id=45950&amp;amp&amp;act=act'.

我该怎么做?也许使用 JQuery?

【问题讨论】:

  • 你不能!如果站点支持 CORS 或 JSONP,您可以发送请求并获得响应,但您无法抓取 HTML,您需要在服务器端进行操作。

标签: jquery html get href


【解决方案1】:

由于跨域浏览器限制,您将遇到问题。如果您想使用 JS,可以使用一个 ajax 插件:

https://github.com/padolsey/jQuery-Plugins/blob/master/cross-domain-ajax/jquery.xdomainajax.js

然后只需使用:

$.ajax({
    url: 'http://www.somewebsite.com',
    type: 'GET',
    success: function(res) {
        // your code here
    }
});

【讨论】:

  • +1 现在这是一个非常好的实用程序!值得一提的是,它之所以有效,是因为它使用 YQL 作为后端来检索跨域 url。但还是很棒! :D
  • 我喜欢它,我会在我的项目中使用它!谢谢!
【解决方案2】:

好吧,既然你编辑了你的答案说:

我该怎么做?例如。使用 jQuery。 只是举例

由于使用 jquery 只是例如,这里是一个非 jquery 解决方案:

$ curl 'http://pastebin.com/raw.php?i=hDPyZ2Ne' |sed -n 's/.*href="\([^"]*\).*/\1/p'

(将该网址替换为您网站的网址)

该行将在 *nix 终端上执行。这将输出

?form=397&amp&id=45950&amp&act=act

现在,完全 不可能 用 jquery 做到这一点吗?你的意思是的,但是如果你使用phantomjs,你可以在页面DOM上执行你自己的js。

这是一个使用 jquery 来完成的 phantomjs 脚本:

var page = require('webpage').create(); 
var url = 'http://...put your url here';      
page.open(url, function() {
    page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js", function() {
        var href = page.evaluate(function() {
            return $('a').attr('href');
        });
        console.log(href);
        phantom.exit();
    });
});

编辑前端人员给你的方法也不错。

【讨论】:

    猜你喜欢
    • 2020-01-21
    • 2013-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-01
    • 1970-01-01
    相关资源
    最近更新 更多