如何抓取网页的javascript部分?

时间:2019-02-17 14:17:31

标签: javascript node.js web-scraping

我正在尝试在Node.js中抓取一些网站。我遵循了great tutorial,但是意识到这可能不是我想要的,即。可能正在查看抓取页面的javascript部分而不是html。

有可能吗?

原因是,我正在寻找加载下面代码部分的内容,这些内容可以通过在Safari中检查(未在Chrome中显示)找到kayak.com页面(请参见下面的网址),并且似乎位于脚本部分。

reducer: {"reducerPath":"flights\/results\/react\/reducers\/

https://www.kayak.com/flights/TYO-PAR/2019-07-05-flexible/2019-07-14-flexible/1adults/children-11?fs=cfc=1;legdur=-960;stops=~0;bfc=1&sort=bestflight_a&attempt=2&lastms=1550392662619

1 个答案:

答案 0 :(得分:1)

更新:不幸的是,此站点使用了自动程序/抓取保护功能:curl之类的工具获得带有机器人警告的页面,puppeteer之类的无头浏览器工具获得具有验证码的页面。

===============

由于该行出现在HTML源代码中,并且不是由JavaScript执行动态添加的,因此您可以在适当的库API中使用以下代码:

const extractedString = [...document.querySelectorAll('script')]
  .map(({ textContent }) => textContent)
  .find(txt => txt.includes('string'))
  .match(/regexp/);
相关问题