美文网首页
获取数据相关(其他网站)

获取数据相关(其他网站)

作者: bjhu电net | 来源:发表于2017-12-15 10:05 被阅读0次

1:jsonp

新建一个script标签,通过script的src属性去获取网站数据

function getDate(data){
  //处理数据
}
var s=document.createElement('script');
s.src=url;
document.getElementsByTagName('body').appendChild('s');

2:ajax

一般会遇到同源策略的问题

function getXMLHttpRequest() {  
              var xhr;  
              if(window.ActiveXObject) {  
                       xhr= new ActiveXObject("Microsoft.XMLHTTP");  
              }else if (window.XMLHttpRequest) {  
                       xhr= new XMLHttpRequest();  
              }else {  
                       xhr= null;  
              }  
              return xhr;  
    }  
      
    function save() {  
              var xhr = getXMLHttpRequest();  
              xhr.open("post","url");  
              var data = "name=mikan&address=street...";  
              xhr.send(data);  
              xhr.onreadystatechange= function() {  
                       if(xhr.readyState == 4 && xhr.status == 200) {  
                                alert("returned:"+ xhr.responseText);  
                       }  
              };  
    }

解决方法:1.在后台处理,允许相关域名访问

//设置跨域访问  
app.all('*', function(req, res, next) {  
    res.header("Access-Control-Allow-Origin", "*");  
    res.header("Access-Control-Allow-Headers", "X-Requested-With");  
    res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");  
    next();  
});

2.后台代理 node后台代理使用的是http-proxy-middleware

//实现代理
var proxyMiddleWare = require("http-proxy-middleware");

/*var options = {
  target: 'https://c.y.qq.com', // target host
  changeOrigin: true,               // needed for virtual hosted sites    // proxy websockets
  pathRewrite: {
    '^/apis' : '',    // rewrite path
  },
  remoteAddress:'101.227.139.217:443'//可能没有用
};*/
var options = {
  target: 'https://user.qunar.com', // target host
  changeOrigin: true,               // needed for virtual hosted sites    // proxy websockets
  pathRewrite: {
    '^/apis' : '',    // rewrite path
  },
  remoteAddress:'101.227.139.217:443'//可能没有用
};

var app = express();

var exampleProxy = proxyMiddleWare(options);

app.use('/apis', exampleProxy);//当请求已apis开头的路径时,会自动跳转到相应的qq路径

后台请求数据(无跨域)

node用的模块是superagent

var request = require("superagent");
var data = {
        appid: appId,
        secret: sessionKey,
        js_code: js_code,
        grant_type: grant_type
    };//这是需要提交的数据
    request
        .get('https://api.weixin.qq.com/sns/jscode2session')
        .query(data)
        .end(function (err, resd) {
            res.send({data: resd.text});
        });

爬虫爬取(scrapy)

需要得到js渲染完之后的数据,所以利用scrapy-splash爬取JS生成的动态页面
链接地址

相关文章

  • 获取数据相关(其他网站)

    1:jsonp 新建一个script标签,通过script的src属性去获取网站数据 2:ajax 一般会遇到同源...

  • gradle简单使用 续

    本文是对上篇文章的补充,重点是gradle从其他文件中获取相关数据 从proties文件中获取数据 文件中是这么写...

  • 8.6-8.7 天气预报软件

    请求数据需要的网站 获取省份 获取地区 获取城市 获取天气信息

  • PYTHON网站爬虫教程

    无论您是要从网站获取数据,跟踪互联网上的变化,还是使用网站API,网站爬虫都是获取所需数据的绝佳方式。虽然它们有许...

  • sqlmap从入门到精通-第六章-6-1 使用sqlmap渗透某

    6.1 使用sqlmap渗透某网站 主要介绍Mysql+PHP环境下如何检测和实施SQL注入,获取数据库相关信息,...

  • 字体反爬

    打开 目标网站,目的是获取图片中的数据 分析可知,除了评论数在html文档中,其他数据都可以从模拟发送ajax请求...

  • R可视化——地图绘制及数据的添加

    加载所需R包 数据获取与加载 1、地图数据——从阿里云DataV可视化网站(可选择其他平台)下载格式为.json的...

  • Cross Site Scripting(xss) 跨站脚本攻击

    Scripting作用 获取页面数据 => 偷取网站任意数据 获取cookies => 偷取用户资料 劫持前端...

  • Python 3.x 高评分电影爬取

    电影网站是随意选取的,如果要爬取其他电影网站需要有所改动。利用 requests 库向服务器发送请求获取数据,利用...

  • java爬取网页数据

    第一步:获取网页html数据 传入网站地址,获取html文件数据 第二步:获取需要的数据

网友评论

      本文标题:获取数据相关(其他网站)

      本文链接:https://www.haomeiwen.com/subject/irerwxtx.html