【发布时间】:2018-05-02 15:30:48
【问题描述】:
我正在使用 Cheerio 并通过 Node.js 请求进行一些基本的网络抓取,但似乎无法弄清楚如何访问数据。页面通过请求加载,我可以使用 Cheerio 控制台记录页面标题,但是当我进入脚本时,它是一堆复杂的对象。
在页面的正文部分,它看起来像..
<body>
<script src="someUrl" script type="text/javascript" />
<script src="someUrl" script type="text/javascript" />
<script src="someUrl" script type="text/javascript" />
<script type="text/javascript">var months = [6,12,24,36,48,60]; var amounts = [5000,10000,15000,20000,25000]</script>
我正在尝试获取最后一个脚本中的变量以将它们作为变量存储在我的节点脚本中以供使用,但我似乎无法访问它们,即使是文本。
当我在节点中尝试此操作时,我会在控制台中获得页面标题,然后是一些巨大的对象响应,而不是要解析的变量文本。有什么建议吗?
$ = cheerio.load(body);
console.log($('title').text());
var text = $('script');
console.dir(text[3]);
【问题讨论】:
-
cheerio解析 HTML 并创建一个您可以访问的迷你 DOM。它不会解析和运行页面中的 Javascript。为此,您需要通常称为无头浏览器的工具,例如 PhantomJS。
标签: node.js web web-scraping cheerio