- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Всем здрасьте, помогите с регуляркой, не могу получить отсюда (vk.com/audio?) имя трека и ссылку на файл (ссылка на файл есть в исходнике). Не могу понять суть регулярных выражений. :gm:
Суть http://ru.wikipedia.org/wiki/Regular_expression
Название треков
Ссылки
siv1987, спасибо, только я немного не догоняю...так?
preg_match_all("Audio.selectPerformer\(event, '(.+?)'\);",$answer,$parse);и в $parse я получу массив ссылок?
Разделители укажите.
Массив ссылок вы получите со второй регуляркой. Связь между этими массивами будет по ключу элемента.
Всем здрасьте, помогите с регуляркой, не могу получить отсюда (vk.com/audio?) имя трека и ссылку на файл (ссылка на файл есть в исходнике). Не могу понять суть регулярных выражений. 😒
В данном отдельно взятом случае можно поступить следующим образом:
При запросе к vk.com/audio Вы в ответ получите Json данные со всяким мусором. Поэтому:
Шаг 1.
preg_match('#\{.*\}#is',<переменная_с_ответом_от_сервера>,$data)Теперь в $data будут содержаться чистые json данные.
Шаг 2.
Теперь в $a_data находиться обычный массив и с титлами и с ссылками. Сделайте его var_dump и все поймете.
P.S.: Для изучения регулярных выражений, очень хорошо подойдет это.
Всем спасибо, что откликнулись. Буду разбираться в регулярках, и с json познакомлюсь заодно)))
DavyJohnes, вот как Вы сказали сделал,
но получил в ответ
Что, где я упустил, не могу понять.
А если
то
array(1) { [0]=> string(114520) "{ adupd: 120000, al: parseInt('2') || 4, id: 6285718, intnat: '' ? true : false, host: 'vk.com', lang: 0, rtl: parseInt('') || 0, version: 10962, stDomains: 3, zero: false, contlen: 101594, loginscheme: 'https', ip_h: '6ebbf89a816301dcc4', vc_h: 'a0a796f7397a740c701750b6bb27ab10', navPrefix: '/', dt: parseInt('') || 0, fs: parseInt('11') || 11, ts: 1351581534, pd: 0, pads: 1, time: [2012, 10, 30, 11, 18, 54] } window.locDomain = vk.host.match(/[a-zA-Z]+\.[a-zA-Z]+\.?$/)[0]; var _ua = navigator.userAgent.toLowerCase(); if (/opera/i.test(_ua) || !/msie 6/i.test(_ua) || document.domain != locDomain) document.domain = locDomain; var ___htest = (location.toString().match(/#(.*)/) || {})[1] || ''; if (vk.al != 1 && ___htest.length && ___htest.substr(0, 1) == vk.navPrefix) { if (vk.al != 3 || vk.navPrefix != '!') { location.replace(location.protocol + '//' + location.host + '/' + ___htest.replace(/^(\/|!)/, '')); } } var StaticFiles = { 'common.js' : {v: 960}, 'common.css': {v: 375}, 'ie6.css' : {v: 26}, 'ie7.css' : {v: 18} ,'lang0_0.js':{v:6358},'audio.css':{v:76},'audioplayer.css':{v:8},'ui_controls.css':{v:32},'notifier.css':{v:64} }ну и ниже сама страница спарсеная отображается.
Всем спасибо, что откликнулись. Буду разбираться в регулярках, и с json познакомлюсь заодно)))
DavyJohnes, вот как Вы сказали сделал,
но получил в ответ
Что, где я упустил, не могу понять.
А если
то
array(1) { [0]=> string(114520) "{ adupd: 120000, al: parseInt('2') || 4, id: 6285718, intnat: '' ? true : false, host: 'vk.com', lang: 0, rtl: parseInt('') || 0, version: 10962, stDomains: 3, zero: false, contlen: 101594, loginscheme: 'https', ip_h: '6ebbf89a816301dcc4', vc_h: 'a0a796f7397a740c701750b6bb27ab10', navPrefix: '/', dt: parseInt('') || 0, fs: parseInt('11') || 11, ts: 1351581534, pd: 0, pads: 1, time: [2012, 10, 30, 11, 18, 54] } window.locDomain = vk.host.match(/[a-zA-Z]+\.[a-zA-Z]+\.?$/)[0]; var _ua = navigator.userAgent.toLowerCase(); if (/opera/i.test(_ua) || !/msie 6/i.test(_ua) || document.domain != locDomain) document.domain = locDomain; var ___htest = (location.toString().match(/#(.*)/) || {})[1] || ''; if (vk.al != 1 && ___htest.length && ___htest.substr(0, 1) == vk.navPrefix) { if (vk.al != 3 || vk.navPrefix != '!') { location.replace(location.protocol + '//' + location.host + '/' + ___htest.replace(/^(\/|!)/, '')); } } var StaticFiles = { 'common.js' : {v: 960}, 'common.css': {v: 375}, 'ie6.css' : {v: 26}, 'ie7.css' : {v: 18} ,'lang0_0.js':{v:6358},'audio.css':{v:76},'audioplayer.css':{v:8},'ui_controls.css':{v:32},'notifier.css':{v:64} }ну и ниже сама страница спарсеная отображается.
У Вас запрос неправильный выполняется. Нужно делать POST запрос к vk.com/audio со следующими параметрами:
и json_decode($parse) заменить на json_decode($parse[1])
Да, спасибо...уже разобрался))))
А подскажите еще, как осуществить поиск, пробую так, нифига не получается
P.S.
А не подскажете, с какого сайта можно спарсить различных исполнителей и их дискографию))) Для локалки базу собираю, вот и делал парсер музыки VK)))
Да, спасибо...уже разобрался))))
А не подскажете, с какого сайта можно спарсить различных исполнителей и их дискографию))) Для локалки базу собираю, вот и делал парсер музыки VK)))
http://muzebra.com попробуйте. Там не много, но есть русскоязычное описание дискографий и исполнителей.