jQuery .find无法在实时网站上运行

时间:2016-07-12 07:45:51

标签: javascript jquery dom

我正在尝试从一个成人网站获取一些dom元素,我有10个或更多网站,我已经使用以下代码完成了这个东西,但没有为下一个网址工作。你能帮帮我吗?

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="divStatus">
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
</div>

我已尝试使用其他网站上面的代码,但不是这样。

如果您想尝试,还需要使用上面的第一个脚本。

$.get('http://www.example.com/view_video.php?viewkey=ph576bfc568f54d', function (response) {
    var thumbnail = $(response).find('meta[property="og:image"]');
    var thumbUrl = $(thumbnail).attr('content');
    console.log(thumbUrl);
});

先谢谢...

1 个答案:

答案 0 :(得分:0)

在将其作为参数传递给cors-anywhere.herokuapp.com之前,您需要删除Url的协议部分。

试试这个:

$.ajaxPrefilter(function (options) {
    if (options.crossDomain && jQuery.support.cors) {
        var http = (window.location.protocol === 'http:' ? 'http:' : 'https:');
        options.url = http + '//cors-anywhere.herokuapp.com/' + options.url.split('//')[1];
    }
});

在解析response时,我认为将整个响应解析为自己的DOM树是资源的一部分,而使用简单的字符串方法提取值可能更好。 / p>

但是,您当前的方法失败了,因为如果您传递整个响应(使用$(response)),jQuery不会为您创建DOM树。

请改为尝试:

$.get('http://www.example.com/view_video.php?viewkey=ph576bfc568f54d', function (response) {
    var parser = new DOMParser(),
        doc = parser.parseFromString(response, "text/html");

    console.log(doc.querySelectorAll('meta[property="og:image"]')[0].content);
});