加载任何URL内容,并在JS中关注XPATH



我想做的是加载页面,并获取某物的内容,然后将某物的内容或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,有几个库也可以这样做,例如libxmljsparse5-此处更多。

最新更新