如何从Javascript中的给定链接获取 any 类或ID的值?这是一张说明我要做什么的图像:
我要查找链接中特定ID或类内的值(或文本)。假设我给了Javascript链接。我希望它转到该链接并找到给定类或ID的值。 让我们说:我给了它google.com
的链接,并且给了它"Fx4vi"
的类,它会返回"Advertising"
。
如果您需要搁置这个问题,您能告诉我原因,以便我解决吗?
答案 0 :(得分:0)
由于Same Origin Policy,您无法将任何内容从Google加载到您的网站。
但是,如果要从服务器上的其他.html或.php获取类和ID,则可以使用以下方法:
let file_path = "FILE_PATH";
let xhrG = new XMLHttpRequest();
xhrG.onreadystatechange = function() {
console.log(xhrG.readyState,xhrG.status);
if(xhrG.readyState === 4 && xhrG.status === 200){
ret = xhrG.responseText;
let temp = document.createElement('div');
temp.id = 'idofcontainer';
temp.innerHTML = ret;
temp.style.display = "none";
document.body.append(temp);
console.log(document.getElementById('idofcontainer').getElementsByClassName('searching-by-class')); // Shows all elements with class `searching-by-class`
console.log(document.getElementById('idofcontainer').children.namedItem('searching-by-id')); // Shows element with id`searching-by-id`
}
}
xhrG.open("GET", file_path);
xhrG.send();
答案 1 :(得分:0)
我不太了解您想要什么。是您自己的页面还是Google的页面?
可能是您仅以Google网页截图(为例),并且想从您自己的页面获取此值,然后您可以如下所示:
window.addEventListener('load', function(e)
{
var spanElement = document.querySelector('#fsl'), //<span id="fsl">
firstElementWithClassFx4vi = spanElement.querySelector('.Fx4vi'),
allElementsWithClassFx4vi = spanElement.querySelectorAll('.Fx4vi');
console.log(firstElementWithClassFx4vi.innerHTML);
console.log('In span element with id="fsl" we have: ' + allElementsWithClassFx4vi.length + ' elements.');
});
<span id="fsl">
<a class="Fx4vi" href="https://www.google.com">Advertising</a><br>
<a class="Fx4vi" href="https://www.google.com">Business</a>
</span>
但是,如果您想直接从Google页面读取内容,则必须使用AJAX向服务器(如PHP)发出请求。首先,在服务器端,您可以使用PHP function file_get_contents()
:$content_google_page = file_get_contents('https://www.google.com/');
从整页中获取内容,然后必须使用PHP function preg-match()
使用正则表达式来解析此内容。之后,您可以将此“ web scraping”内容作为AJAX请求的答案。