express+axios抓取其他网站上的jsonp数据 作为json输出
2018-03-24 21:57
344 查看
1.首先在依赖库中添加依赖express、axios"express": "^4.16.3",
"axios": "^0.18.0"
在其中添加以下代码:// start 使用代理来获取其他网站的数据
var express = require('express')
var axios = require('axios')
var app = express()
var apiRouter = express.Router()
app.use('/api', apiRouter)在devServer中添加以下代码:
"axios": "^0.18.0"
cnpm install2.在webpack.dev.conf.js文件中将依赖引入,然后建立一个代理去拿到其他网站的数据
在其中添加以下代码:// start 使用代理来获取其他网站的数据
var express = require('express')
var axios = require('axios')
var app = express()
var apiRouter = express.Router()
app.use('/api', apiRouter)在devServer中添加以下代码:
before(app) { // 获取推荐歌单数据 app.get('/api/getVedio', function(req, res) { // 传入的两个参数第一个是接口,第二个是调用这个接口的方法 var url = 'http://www.yinyuetai.com/mv/get-first-video' //网站的jsonp地址 axios.get(url, { // 使用axios来获取数据,传入URL header: { //即将被发送的自定义请求头 referer: 'http://m.yinyuetai.com/', //这两项在网站的NetWork中的Request Header中获得 host: 'www.yinyuetai.com', 'Access-Control-Allow-Origin': '*' }, params: req.query // 即将与请求被发送的URL参数 }).then((response) => { res.json(response.data) // 作为一个json返回 }).catch((e) => { console.log(e) // 如果没有拿到数据,输出错误信息 }) }) app.get('/api/getSinger', function(req, res) { var url = 'http://www.1ting.com/api/client/group_view/1.json' axios.get(url, { header: { referer: 'http://h5.1ting.com/singer', host: 'www.1ting.com', 'Access-Control-Allow-Origin': '*' }, params: req.query }).then((response) => { res.json(response.data) }).catch((e) => { console.log(e) }) }) }3.建立一个在前台读取数据的文件singer.js
import axios from 'axios'; export function getSinger() { const url = '/api/getSinger'; // 与前面的axios获取的数据URL相对应 const data = Object.assign({}, { //这里面的数据是与请求一起发送的URL参数 page: 1, _:1521895305719 }); return axios.get(url, { params: data // URL参数是data }).then((res) => { return Promise.resolve(res.data); // 将获得的数据以一个Promise返回 }).catch((e) => { console.log(e); // 打印错误信息 }); }4.在要使用数据的组件中加入以下代码
import { getSinger } from '../../api/singer'; // 引入获取数据的文件 export default { created () { this._getSinger(); // 方法在vue组件渲染完成之后进行 }, methods: { _getSinger () { getSinger().then((res) => { console.log(res); }) } } }
相关文章推荐
- 使用mock.js随机数据和使用express输出json接口的实现方法
- json与jsonp应用及其他ajax数据交互方式
- 利用jsonp抓取某网站数据详细示例
- Scrapy:抓取返回数据格式为JSON的网站内容
- 安卓从其他网站上抓取数据例子
- Scrapy:抓取返回数据格式为JSON的网站内容
- Python 输出JSON对象数组&写入数据到MySQL
- 在.NET使用JSON作为数据交换格式【转】
- c++如何用cout输出其他进制(十进制以外)以外数据
- PHP的cURL库:抓取网页,POST数据及其他,HTTP认证 抓取数据
- AJAX 跨域请求 - JSONP获取JSON数据
- php中输出json数据的几种方式
- ASP.NET Hashtable输出JSON格式数据 - 贵源网络 - 博客园
- 应用express mockjs模拟前端json数据接口
- 函数作为返回值输出 判断数据类型
- AJAX 跨域请求 - JSONP获取JSON数据
- laravel5.4 关于后台数组中数据和json数据在前台的遍历输出
- java抓取网站数据
- javascript仿php的print_r函数输出json数据
- Java抓取网站数据