Не могу получить результат с yql и xpath

Я хотел бы получить часть веб-страницы с помощью yql. Я пробовал несколько запросов. Большинство запросов могут вернуть правильный результат, кроме одного запроса.

Вот запрос:

select * from html where url="http://www.cngold.org/img_date/livesilvercn_rmb.html" and xpath='//div[6]/div[2]/div/div[2]/table/tbody/tr[4]/td[6]'

Я надеюсь получить цену, но на самом деле получаю пустой результат.

Если я получу всю страницу с помощью yql и проверю xpath этого элемента, на этот раз xpath будет

//div[3]/div/div[2]/a/div/div[2]/table/tbody/tr[4]/td[6]

Почему так много различий?

Как мне справиться с ситуацией?

Заранее спасибо.


person bucherren    schedule 19.05.2012    source источник
comment
Не знаю, что на странице, но ваш первый запрос выбирает значение 5.82 (надеюсь, это действительно полезная информация, и значения не меняются очень часто). Второй запрос ничего мне не дает (но это правильный запрос).   -  person Petr Janeček    schedule 22.05.2012
comment
Да, 5.82 - полезная информация. Но я получил пустой результат. Я пробую это с помощью консоли yql. Спасибо. Возможно, мне следует попросить другого человека попробовать это.   -  person bucherren    schedule 24.05.2012
comment
Я попробовал это с Firefox + Firebug + Firefinder. Разве проблема не в том, что значение вычисляется после того, как страница загружена каким-то javascript? Поскольку исходный неповрежденный исходный файл не содержит значения. И yql, конечно, не может найти то, что вычислено с помощью js.   -  person Petr Janeček    schedule 24.05.2012


Ответы (1)


YQL не может получить значения, вычисляемые динамически. В этом случае лучше использовать phantom.js.

Этот ответ https://stackoverflow.com/a/7978072/1337392 предоставляет несколько инструментов, с помощью которых вы можете выполнять очистку HTML.

Надеюсь, поможет!

person Flame_Phoenix    schedule 14.07.2016