Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 加载任何url内容并遵循JS中的XPATH_Javascript_Node.js_Url_Web Scraping - Fatal编程技术网

Javascript 加载任何url内容并遵循JS中的XPATH

Javascript 加载任何url内容并遵循JS中的XPATH,javascript,node.js,url,web-scraping,Javascript,Node.js,Url,Web Scraping,我想做的是加载一个页面,并通过XPath、选择器或JS路径获取内容,然后将由此获得的值应用到我的程序中。我怎么能这么做? 例如,在此页面上,使用页面的url执行请求并遵循该路径(同时以某种方式将类型作为目标,这里是类): 会给我“加载任何url内容并遵循JS中的XPATH” 当我得到这里面的文字时: <a href="/questions/54847748/load-any-url-content-and-follow-xpath-in-js" class="question-hyperl

我想做的是加载一个页面,并通过XPath、选择器或JS路径获取内容,然后将由此获得的值应用到我的程序中。我怎么能这么做? 例如,在此页面上,使用页面的url执行请求并遵循该路径(同时以某种方式将类型作为目标,这里是类):

会给我“加载任何url内容并遵循JS中的XPATH”

当我得到这里面的文字时:

<a href="/questions/54847748/load-any-url-content-and-follow-xpath-in-js" class="question-hyperlink">Load any url content and follow XPATH in JS</a>

嗯,您可以使用

document.getElementById('question-header').children[0].children[0].href;

它不像XPATH(子对象的冗余)那样动态,但它应该能够满足您面对静态结构的需要。对于Node.js,有几个库也可以这样做,例如
libxmljs
parse5
——更多信息。

如果您需要最可靠的方式从网页获取一些数据,例如,包括客户端JavaScript执行生成的数据,您可以使用无头浏览器的一些管理器。例如,所描述的任务可以通过Node.js完成,在该脚本中(选择器和XPath以及所有Web API都受支持,通过计算浏览器上下文中的代码片段并在Node.js和浏览器上下文之间交换数据):

“严格使用”;
const puppeter=require('puppeter');
(异步函数main(){
试一试{
const browser=wait puppeter.launch();
const[page]=wait browser.pages();
等待页面。转到('https://stackoverflow.com/questions/54847748/load-any-url-content-and-follow-xpath-in-js');
常量数据=等待页面。评估(()=>{
return document.querySelector(“#问题标题>h1>a”).innerText;
});
控制台日志(数据);
等待浏览器关闭();
}捕捉(错误){
控制台错误(err);
}
})();

我要做的主要事情是获取URL的内容,然后使用路径。使用这个,我想我们假设我在一个页面上或者在chrome的控制台上做一些事情。我不知道如何使用node.js在控制台中记录页面内容。这是主要的部分,然后,我想使用xpath或js路径或任何东西来获得一些东西。
document.getElementById('question-header').children[0].children[0].href;