당신이 URL에서 (외부 파일을 참조하지 않는) 스크립트 태그를 액세스 할 수있는 방법 원하는 데이터 (regex 사용). 더 자세한 내용이 없으면, 당신이 원하고 뭘 믿고 있는지 짐작하기가 어렵습니다. 당신이 밖으로 무엇을 얻을 여기
inline = doc.xpath('//script[not(@src)]').map(&:text)
data = inline.map{ |js| js[/new Highcharts\.Chart\((.+?\})\);/m,1] }.compact[0]
puts data
:
여기에 내가 당신을 추측하고있어 찾고 있었다 발견이 매우 깨지기 쉬운 정규식의이 JSON하지
{
chart: {
renderTo: 'container',
defaultSeriesType: 'line',
marginRight: 130,
marginBottom: 25
},
title: {
text: 'Monthly Average Temperature',
x: -20 //center
},
subtitle: {
text: 'Source: WorldClimate.com',
x: -20
},
xAxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
},
yAxis: {
title: {
text: 'Temperature (°C)'
},
plotLines: [{
value: 0,
width: 1,
color: '#808080'
}]
},
tooltip: {
formatter: function() {
return '<b>'+ this.series.name +'</b><br/>'+
this.x +': '+ this.y +'°C';
}
},
legend: {
layout: 'vertical',
align: 'right',
verticalAlign: 'top',
x: -10,
y: 100,
borderWidth: 0
},
series: [{
name: 'Tokyo',
data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6]
}, {
name: 'New York',
data: [-0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8, 24.1, 20.1, 14.1, 8.6, 2.5]
}, {
name: 'Berlin',
data: [-0.9, 0.6, 3.5, 8.4, 13.5, 17.0, 18.6, 17.9, 14.3, 9.0, 3.9, 1.0]
}, {
name: 'London',
data: [3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8]
}]
}
주 것을; 이것은 object, string, array, numeric 및 함수 리터럴을 사용하여 JavaScript 코드를 나타내는 문자열입니다.
제공하신 URL에는 * JSON 데이터가 없습니다. ('new Highcharts.Chart (...)'에 대한 인수와 같이 일부 JavaScript 객체 리터럴이 있지만 실제로는 JSON이 아닙니다.) 추출하려는 원시 자바 스크립트 데이터 또는 추출하려고하는 원시 자바 스크립트 데이터입니까? 어딘가에서 다른 데이터를 얻을 수 있습니까? ** 당신이 정말로 성취하고자하는 것은 무엇입니까? ** – Phrogz