我正在尝试从一个成人网站获取一些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);
});
先谢谢...
答案 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);
});