Главная
Блог разработчиков phpBB
 
+ 17 предустановленных модов
+ SEO-оптимизация форума
+ авторизация через соц. сети
+ защита от спама

парсинг сайта на ruby

Anna | 20.06.2014 | нет комментариев
Ребята, помогите, пожалуйста. Постигаю ruby — никак не могу побороть небольшой парсер.
Знаю, что дозволено через %r{} либо через nokogiri, но никак не выходит :( Есть код страницы:
trackinfo: [{«title_link»:"/track/alexandrina-rain",«lyrics»:null,«download_tooltip»:«name your price high quality formats»,«has_lyrics»:false,«sizeof_lyrics»:0,«license_type»:1,«streaming»:1,«has_info»:false,«alt_link»:null,«track_num»:1,«private»:null,«duration»:196.413,«is_downloadable»:true,«encoding_error»:null,«album_preorder»:false,«title»:«Alexandrina & Rain»,«id»:2541418463,«is_draft»:false,«has_free_download»:null,«encoding_pending»:null,«unreleased_track»:false,«file»:{«mp3-128»:«popplers5.bandcamp.com/download/track?enc=mp3-128&fsig=59ef453d6ec9600d46a1176cfa298bf3&id=2541418463&stream=1&ts=1368611818.0»},«free_album_download»:false},{«title_link»:"/track/black-piano",«lyrics»:null,«download_tooltip»:«name your price high quality formats»,«has_lyrics»:false,«sizeof_lyrics»:0,«license_type»:1,«streaming»:1,«has_info»:false,«alt_link»:null,«track_num»:2,«private»:null,«duration»:134.885,«is_downloadable»:true,«encoding_error»:null,«album_preorder»:false,«title»:«Black Piano»,«id»:2022937903,«is_draft»:false,«has_free_download»:null,«encoding_pending»:null,«unreleased_track»:false,«file»:{«mp3-128»:«popplers5.bandcamp.com/download/track?enc=mp3-128&fsig=b996ee6723d6992597ef3d49b660b277&id=2022937903&stream=1&ts=1368611818.0»},«free_album_download»:false},{«title_link»:"/track/blood-runs-cold",«lyrics»:null,«download_tooltip»:«name your price high quality formats»,«has_lyrics»:false,«sizeof_lyrics»:0,«license_type»:1,«streaming»:1,«has_info»:false,«alt_link»:null,«track_num»:3,«private»:null,«duration»:187.212,«is_downloadable»:true,«encoding_error»:null,«album_preorder»:false,«title»:«Blood Runs Cold»,«id»:2548956942,«is_draft»:false,«has_free_download»:null,«encoding_pending»:null,«unreleased_track»:false,«file»:{«mp3-128»:«popplers5.bandcamp.com/download/track?enc=mp3-128&fsig=70ce41cd815abe97d6cedf4528e8066a&id=2548956942&stream=1&ts=1368611818.0»},«free_album_download»:false},{«title_link»:"/track/fight",«lyrics»:null,«download_tooltip»:«name your price high quality formats»,«has_lyrics»:false,«sizeof_lyrics»:0,«license_type»:1,«streaming»:1,«has_info»:false,«alt_link»:null,«track_num»:4,«private»:null,«duration»:118.254,«is_downloadable»:true,«encoding_error»:null,«album_preorder»:false,«title»:«Fight»,«id»:906575690,«is_draft»:false,«has_free_download»:null,«encoding_pending»:null,«unreleased_track»:false,«file»:{«mp3-128»:«popplers5.bandcamp.com/download/track?enc=mp3-128&fsig=2120a1759ff1994dc61d815c734774e6&id=906575690&stream=1&ts=1368611818.0»},«free_album_download»:false},{«title_link»:"/track/musicxcans",«lyrics»:null,«download_tooltip»:«name your price high quality formats»,«has_lyrics»:false,«sizeof_lyrics»:0,«license_type»:1,«streaming»:1,«has_info»:false,«alt_link»:null,«track_num»:5,«private»:null,«duration»:179.537,«is_downloadable»:true,«encoding_error»:null,«album_preorder»:false,«title»:«Musicxcans»,«id»:1267134395,«is_draft»:false,«has_free_download»:null,«encoding_pending»:null,«unreleased_track»:false,«file»:{«mp3-128»:«popplers5.bandcamp.com/download/track?enc=mp3-128&fsig=8330734577ce49ec9e101aca697c2a5b&id=1267134395&stream=1&ts=1368611818.0»},«free_album_download»:false},{«title_link»:"/track/tease",«lyrics»:null,«download_tooltip»:«name your price high quality formats»,«has_lyrics»:false,«sizeof_lyrics»:0,«license_type»:1,«streaming»:1,«has_info»:false,«alt_link»:null,«track_num»:6,«private»:null,«duration»:232.142,«is_downloadable»:true,«encoding_error»:null,«album_preorder»:false,«title»:«Tease»,«id»:3336608674,«is_draft»:false,«has_free_download»:null,«encoding_pending»:null,«unreleased_track»:false,«file»:{«mp3-128»:«popplers5.bandcamp.com/download/track?enc=mp3-128&fsig=92eabc6741a1961eaa8791539fada165&id=3336608674&stream=1&ts=1368611818.0»},«free_album_download»:false},{«title_link»:"/track/thank-you",«lyrics»:null,«download_tooltip»:«name your price high quality formats»,«has_lyrics»:false,«sizeof_lyrics»:0,«license_type»:1,«streaming»:1,«has_info»:false,«alt_link»:null,«track_num»:7,«private»:null,«duration»:166.313,«is_downloadable»:true,«encoding_error»:null,«album_preorder»:false,«title»:«Thank You»,«id»:2663170132,«is_draft»:false,«has_free_download»:null,«encoding_pending»:null,«unreleased_track»:false,«file»:{«mp3-128»:«popplers5.bandcamp.com/download/track?enc=mp3-128&fsig=be76ad083d4c4438b13c5ca7f3f5848d&id=2663170132&stream=1&ts=1368611818.0»},«free_album_download»:false},{«title_link»:"/track/the-eye",«lyrics»:null,«download_tooltip»:«name your price high quality formats»,«has_lyrics»:false,«sizeof_lyrics»:0,«license_type»:1,«streaming»:1,«has_info»:false,«alt_link»:null,«track_num»:8,«private»:null,«duration»:134.64,«is_downloadable»:true,«encoding_error»:null,«album_preorder»:false,«title»:«The Eye»,«id»:439915119,«is_draft»:false,«has_free_download»:null,«encoding_pending»:null,«unreleased_track»:false,«file»:{«mp3-128»:«popplers5.bandcamp.com/download/track?enc=mp3-128&fsig=fe611b59d8bc4d116d9ce78dc244b508&id=439915119&stream=1&ts=1368611818.0»},«free_album_download»:false},{«title_link»:"/track/untitled-1",«lyrics»:null,«download_tooltip»:«name your price high quality formats»,«has_lyrics»:false,«sizeof_lyrics»:0,«license_type»:1,«streaming»:1,«has_info»:false,«alt_link»:null,«track_num»:9,«private»:null,«duration»:137.002,«is_downloadable»:true,«encoding_error»:null,«album_preorder»:false,«title»:«Untitled #1»,«id»:3954331131,«is_draft»:false,«has_free_download»:null,«encoding_pending»:null,«unreleased_track»:false,«file»:{«mp3-128»:«popplers5.bandcamp.com/download/track?enc=mp3-128&fsig=c7af37d9f2dc017b1e47bba09e80d473&id=3954331131&stream=1&ts=1368611818.0»},«free_album_download»:false},{«title_link»:"/track/you-are",«lyrics»:null,«download_tooltip»:«name your price high quality formats»,«has_lyrics»:false,«sizeof_lyrics»:0,«license_type»:1,«streaming»:1,«has_info»:false,«alt_link»:null,«track_num»:10,«private»:null,«duration»:195.005,«is_downloadable»:true,«encoding_error»:null,«album_preorder»:false,«title»:«You Are»,«id»:2370762971,«is_draft»:false,«has_free_download»:null,«encoding_pending»:null,«unreleased_track»:false,«file»:{«mp3-128»:«popplers5.bandcamp.com/download/track?enc=mp3-128&fsig=940a0d3e30c6185c214640df787c7952&id=2370762971&stream=1&ts=1368611818.0»},«free_album_download»:false}],

как ПРЕКРАСНО разместить все участки между «mp3-128»:” и “”" в массив, получив массив из прямых ссылок на файл?

у меня здесь жесть вида:
start = 0
while data[start..data.length].include?(search_track_uri) == true

file0 = start data[start..data.length].index(search_track_uri) search_track_uri.length
file1 = file0 data[file0..data.length].index(“”") — 1
tracks_uri.insert(0, data[file0..file1])

title0 = data[0..file0].rindex(search_track_title) search_track_title.length
title1 = title0 data[title0..data.length].index(“”") — 1
if tracks_uri.size < 10
tracks_title.insert(0, ’0′ tracks_uri.size.to_s ‘ — ‘ artist ‘ — ‘ data[title0..title1])
else
tracks_title.insert(0, tracks_uri.size.to_s data[title0..title1])
end

start = file1
end

и все равно все как-то не так.

Источник: programmingmaster.ru

Оставить комментарий
Форум phpBB, русская поддержка форума phpBB
Рейтинг@Mail.ru 2008 - 2017 © BB3x.ru - русская поддержка форума phpBB