PHP спарсить значения из кода по url

186
26 ноября 2017, 15:28

Пытаюсь получить отдельные значения по ссылке www.wowhead.com/achievement=12103&power. Текст, который там отображается

$WowheadPower.registerAchievement(12103, 0, {
    name_enus: '...And Chew Mana Buns',
    icon: 'ability_demonhunter_chaosstrike',
    tooltip_enus: '<table><tr><td><b class="q">...And Chew Mana Buns</b> <span class="q0">10 Points </span></td></tr></table><table><tr><td><br />Slay 2000 non-trivial demons in Krokuun, Mac\'Aree, and the Antoran Wastes.</td></tr></table>',
    tooltip2_enus: ''
});

Подскажите, как получить значения item и tooltip_enu ?

Answer 1

Вы можете эмулировать работу этого api, используя любой интерпретатор javascript и eval(с учётом ограничений CORS, нужно делать это либо не в браузере, либо в том же домене):

{
 let $WowheadPower = {
   data: {},
   registerAchievement: function(id, _, data) {
     this.data[id] = data;
   }
 };
 fetch('http://www.wowhead.com/achievement=12103&power')
  .then(res => res.text())
  .then(js => eval(js))
  .then(() => console.log($WowheadPower.data))
}

Для php Вы можете посмотреть на расширение v8js

Если пользоваться этими чанками - не принципиально - воспользуйтесь BattleNet API

READ ALSO
Помогите с выводом комментариев ( дерево )

Помогите с выводом комментариев ( дерево )

Есть массив, первый параметр id, второй parent id и текст

142
Сэмулировать POST на другой сайт

Сэмулировать POST на другой сайт

При сабмите формы, данные отправляются по указанному урлу методом post

192
Как сократить отображаемое число в PHP?

Как сократить отображаемое число в PHP?

Допустим имею данное число: 3985Как мне её превратить в данную строку: 3,9К ?

174
Как сделать 3-х уровневую реф-систему на PHP Mysql?

Как сделать 3-х уровневую реф-систему на PHP Mysql?

Приветствую, подскажите как построить логику 3-х уровневой реферальной системы на PHP и Mysql, например если был переход по реф ссылке в куки записывается...

167