express爬取静态页面---rss的xml

首先init一个项目,安装express,安装request模块,新建一个js文件,main.js:

var express = require('express')
var app = express()
var request = require('request')
var fs = require("fs")

app.use(express.static("static"))
app.get('/login', (req, res) =>{
  request('https://blog.csdn.net/qwe502763576/rss/list', (err, response, body) => {
    // console.log(err);
    // console.log(response && response.statusCode);
    // console.log(body);
    fs.writeFile("static/static_files/rss/rss.xml", body, {}, (err) => {
    	console.log(err)
    })
    res.send(body)
  })
})

app.listen(8888, (err) => {
  console.log("服务已启动")
})

引入了fs模块将获取的数据写入静态资源文件static下的static_files/rss目录下,并命名rss.xml,同事也将获取的数据send给了前端。

目录结构:

index.html:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<div id="box"></div>
	<button onclick="gologin()">login</button>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript">
	console.log($)
	function gologin() {
		$.ajax({
		   type: "GET",
		   url: "/login",
		   dataType: 'text',
		   success: function(msg){
		   		console.log(msg)
		   		location.assign('http://localhost:8888/static_files/rss/rss.xml')
		   },
		   error: function(XMLHttpRequest, textStatus, errorThrown){
	          console.log(errorThrown)
	       }
		});
	}
</script>
</body>
</html>

这里用jq的$.ajax接收到了获取的数据,但是没有对其做操作,而是在获取到数据后直接跳转到访问静态资源目录下的static_files/rss/rss.xml文件,这时跳转过去并不能看到xml文件内容,页面是空白的,打开控制台可以看到一个xsl文件的404错误,原因:在xml文件中引用了xsl样式:

但是我并没有这个rss.xsl文件怎么办呢?你会自己写吗,自己写也行,不过我对xsl语法不是太熟,我就试着在csdn官网找,根据它引入的路径,然后在地址栏输入https://blog.csdn.net/static_files/rss/rss.xsl果然,浏览器自动下载了该文件,然后复制到rss目录下就可以正常打开了,并且还可以在xsl中的style标签中自己修改、新增一些样式来美化xml在页面的展示:

补充:当设置了静态资源路径( app.use(express.static("static")) )时,服务器根目录默认就会打开该路径下的index.html文件,如果有的话。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值