Express and Cheerio/JSDOM
Express and Cheerio/JSDOM
我正试图让Cheerio与Express合作。我想能够从服务器操纵dom,但我所发现的只是网页抓取。
有一些要求…
目前,我能够运行多个app.listen(port);
语句,并使用多个服务器。
我正试图将<script>alert("test);</script>
附加到快递发送的每个页面。
我已经创建了快速服务器:(假设Path
是一个预定义的变量)
var express = require('express');
var app = express();
app.get('/', function (req, res) {
app.use(app.static(Path));
res.sendFile(Path + "/index.html");
});
app.listen(Port);
你们能给我提供一个工作的例子,把这个附加到页面上。有没有办法让它实时工作?
谢谢!
下面是一个没有错误处理的快速/简单示例:
var express = require('express');
var fs = require('fs');
var cheerio = require('cheerio');
var app = express();
app.get('/', function (req, res) {
fs.readFile(Path + '/index.html', function(err, data) {
var $ = cheerio.load(data);
$('body').append('<script>alert("test");</script>');
res.send($.html());
});
});
app.listen(Port);
我刚刚在本地测试了它,它像预期的那样工作。请确保在您的实际实现中测试readFile
回调中的err
,如果没有找到文件或读取错误,请适当处理。
相关文章:
- JSDom未加载相关脚本
- 摩卡+柴+jsdom Can't加载自定义模块目录
- 在cloudfoundry上进行JSDOM刮擦;不起作用
- 使用 Cheerio 追加节点的同级节点
- jsdom:dispatchEvent/addEventListener似乎不起作用
- Jsdom 为某些 URL 抛出错误
- 使用JSDOM,我想获得所有具有相同名称的输入标记
- node.js+cheerio-scrape:传递一个要下载的url数组
- 如何使用cheerio(类似jquery的选择器,但没有dom)生成javascript变量的内容
- 使用[jsdom+qs]抓取html
- 如何使用jsdom从节点REPL解析DOM
- 将基于 cheerio 的搜索循环添加到节点简单爬网器中
- Jsdom如何从网站抓取信息
- 使用 JSDom 在节点测试环境中正确接近“窗口”
- 为什么使用 ReactTestUtils 将 iframe 渲染到 jsdom 中不提供 contentWindow
- 使用 cheerio 替换属性值
- JSDOM/Cheerio 大大改变了 HTML
- 如何使用 cheerio 和节点请求写入文件
- 在Cheerio中抓取HTML表格
- Express and Cheerio/JSDOM