我在Meteor中创建了一个应用程序来运行谷歌学者的任何配置文件的刮刀,就在我打开路线时,终端显示下一个访问错误,如下所示:
XMLHttpRequest无法加载 https://scholar.google.cl/citations?user=n1qKMYwAAAAJ&hl=es。没有 '访问控制允许来源'标题出现在请求的上 资源。起源' http://localhost:3000'因此是不允许的 访问。
results.html
<template name="results">
{{> sidebar}}
{{> perfil}}
<h3>Publicaciones</h3>
<div class="radio"> <!--Inputs-->
<div class="row">
<div class="col-md-3 col-xs-6">
<label><input type="radio" name="optradio">Campo</label>
<label><input type="radio" name="optradio">Revista</label>
</div>
<div class="col-md-2 col-md-offset-7 col-xs-2 col-xs-offset-3">
<button type="button" class="btn exportar">Exportar a CSV</button>
</div>
</div>
</div>
<center><h5>Número total de citaciones: 5457</h5></center>
{{> tree}}
{{> barras}}
{{> colaboradores}}
{{> script}}
{{ scraperData }}
</template>
results.js
var request = require('request');
var cheerio = require('cheerio');
Template.results.onCreated(function() {
id_investigador = Busquedas.findOne({});
url = "https://scholar.google.cl/citations?user={{ id_investigador }}&hl=es";
request(url, function(error, response, html){
if(!error){
var $ = cheerio.load(html);
var id_usuario, autor, imagen_usuario, institucion, campos, titulos, citas_totales, citas_2012, indice_h_totales, indice_h_2012,
indice_i10_totales, indice_i10_2012;
var json = { id_usuario: "",
autor : "",
imagen_usuario: "",
institucion : "",
campos : "",
titulos : "",
citas_totales : "",
citas_2012 : "",
indice_h_totales : "",
indice_h_2012 : "",
indice_i10_totales : "",
indice_i10_2012 : ""
};
$('#gsc_prf_in').filter(function(){
var data = $(this);
autor = data.text().trim();
json.autor = autor;
})
$('input[name="user"]').filter(function(){
var data = $(this);
id_usuario = data.val();
json.id_usuario = id_usuario;
})
$('#gsc_prf_pup').filter(function(){
var data = $(this);
imagen_usuario = data.attr('src');
json.imagen_usuario = imagen_usuario;
})
$('#gsc_prf_i').filter(function(){
var data = $(this);
campos = data.children().eq(3).children().eq(0).text().trim();
json.campos = campos;
})
$('#gsc_prf_i').filter(function(){
var data = $(this);
institucion = data.children().eq(2).children().text().trim();
//institucion = data.next().children().attr('href');
json.institucion = institucion;
})
$('#gsc_a_b').filter(function(){
var data = $(this);
titulos = data.children().length;
json.titulos = titulos;
})
/*$('.gsc_a_tr').filter(function(){
var data = $(this);
titulo = data.text();
json.titulo = titulo;
})*/
//CITAS
$('table[id="gsc_rsb_st"]').filter(function(){
var data = $(this);
citas_totales = data.children().eq(1).children().eq(1).text();
json.citas_totales = citas_totales;
})
$('table[id="gsc_rsb_st"]').filter(function(){
var data = $(this);
citas_2012 = data.children().eq(1).children().eq(2).text();
json.citas_2012 = citas_2012;
})
$('table[id="gsc_rsb_st"]').filter(function(){
var data = $(this);
indice_h_totales = data.children().eq(2).children().eq(1).text();
json.indice_h_totales = indice_h_totales;
})
$('table[id="gsc_rsb_st"]').filter(function(){
var data = $(this);
indice_h_2012 = data.children().eq(2).children().eq(2).text();
json.indice_h_2012 = indice_h_2012;
})
$('table[id="gsc_rsb_st"]').filter(function(){
var data = $(this);
indice_i10_totales = data.children().eq(3).children().eq(1).text();
json.indice_i10_totales = indice_i10_totales;
})
$('table[id="gsc_rsb_st"]').filter(function(){
var data = $(this);
indice_i10_2012 = data.children().eq(3).children().eq(2).text();
json.indice_i10_2012 = indice_i10_2012;
})
console.log(json)
Session.set('scraperData', json);
}
})
});
Template.results.helpers({
scraperData(){
return Session.get('scraperData');
}
});
这就是这个模板的路线:
Router.route('/results/:id_investigador', {
name: 'results',
waitOn: function() {
return Meteor.subscribe('busquedas', this.params.id_investigador);
},
data: function() {
return Busquedas.findOne(this.params.id_investigador);
}
});
谢谢大家。此致