我想做的是加载页面,并获取某物的内容,然后将某物的内容或JS路径或JS路径的内容使用到我的程序中。我该怎么办?例如,在此页面上,使用页面的URL进行请求并遵循该路径(同时还以某种方式定位该类型,这是类):
//*[@id="question-header"]/h1/a
会给我'加载任何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>
如果您需要从网页获取一些数据的最可靠方法 - 即包括客户端的JavaScript执行可以生成的数据 - 您可以使用某些管理器无头浏览器。例如,可以在此脚本中使用Node.js和Puppeteer完成所述任务(支持选择器和XPATH以及所有Web API,通过评估浏览器上下文中的代码片段并在Node.js和浏览器上下文之间交换数据):
'use strict';
const puppeteer = require('puppeteer');
(async function main() {
try {
const browser = await puppeteer.launch();
const [page] = await browser.pages();
await page.goto('https://stackoverflow.com/questions/54847748/load-any-url-content-and-follow-xpath-in-js');
const data = await page.evaluate(() => {
return document.querySelector('#question-header > h1 > a').innerText;
});
console.log(data);
await browser.close();
} catch (err) {
console.error(err);
}
})();
好吧,您可以使用
之类的东西document.getElementById('question-header').children[0].children[0].href;
它不像Xpath(孩子的冗余)那样动态,而应该解决您要面对静态结构的技巧。对于node.js,有几个库也可以这样做,例如libxmljs
或parse5
-此处更多。