解析JS中的远程DOM

curious_gudleif

我想获得一个远程网站的DOM并能够对其进行解析,即理想情况下将解析的结果转换为DOM节点并有效地从中获取所需的元素并随后对其进行处理。即,我想从检索到的DOM中切片某些元素,并将它们存储在数组中以进行进一步的操作。它实际上可以实现吗?到目前为止,我已经做到了:

import request from 'request';

export default function getBody(url, callback) {
  request(url, (err, res, body) => {
    callback(body);
  });
}

并在routes文件夹中:

import express from 'express';
import getBody from '../server';

const router = express.Router();

const url = 'http://www.google.com';
let result = {};

getBody(url, response => {
  result = response;
});

router.get('/', (req, res, next) => {
  res.render('index', { title: 'Express', data: result });
});

export default router;

这段代码使远程页面的DOM进入我的视图,但是结果以巨大的字符串形式返回,处理它将是一场噩梦。我尝试使用浏览器请求库从前端处理它,但是我无法使标头正常工作,并且始终会返回错误No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access.

为了获得远程DOM并以上述方式解析它,最佳的行动方案是什么?

大卫

如果您熟悉jQuery,则可以使用cheerio遍历DOM。

import request from 'request';
import cheerio from 'cheerio';

export default function getBody(url, callback) {
  request(url, (err, res, body) => {
    $ = cheerio.load(body);
    $('h2') // finds all of the `h2` tags within the `body` object.
  });
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在 Angular 中解析远程资源

来自分类Dev

无法解析远程脚本中的引用

来自分类Dev

使用DOM解析PHP中的RSS feed

来自分类Dev

使用DOM在Java中解析XML文件

来自分类Dev

使用DOM解析PHP中的XML文件

来自分类Dev

使用DOM解析PHP中的XML文件

来自分类Dev

解析远程 PROC SQL (SAS) 中的宏引用

来自分类Dev

parsley.js中的远程规则消息

来自分类Dev

扫描远程站点的DOM

来自分类Dev

在影子DOM中执行JS

来自分类Dev

Node.js使用严格模式解析dom错误

来自分类Dev

Node Js中的对象解析

来自分类Dev

从文件中解析js表

来自分类Dev

在python中解析xml-不了解DOM

来自分类Dev

Dom XML解析器,检测文本中的元素

来自分类Dev

Java-在DOM解析的XML的“ getTextContent()”中处理缩进

来自分类Dev

在Ajax中,欧芹js远程返回xml而不是json

来自分类Dev

在NodeJS中以字符串形式读取远程JS文件

来自分类Dev

在 JS 中为 HTML 页面远程创建按钮

来自分类Dev

Electron - 使用远程 url 访问加载文档中的 DOM 元素

来自分类Dev

使用JS在DOM中添加元素

来自分类Dev

JS / DOM中的不可见TextNode

来自分类Dev

从vue.js中的内容获取dom

来自分类Dev

我想在js中制作自己的dom

来自分类Dev

for ... of js中的语句-dom集合问题

来自分类Dev

如何解析远程文件?

来自分类Dev

Xcode,解析-处理远程通知

来自分类Dev

远程调试失败的DNS解析?

来自分类Dev

从远程回购中拉出并获取:“解析错误:保留关键字'import'”