Разбор ajax-запроса, который возвращает страницу в xml - PullRequest
1 голос
/ 01 сентября 2011

Я хочу создать мобильное веб-приложение и получить данные из URL, проблема в том, что URL возвращает целую веб-страницу .. позвольте мне объяснить лучше: этот URL, например: http://tubeplus.me/search/movies/war/0/

"война" в URL - это ключевое слово, которое я использовал при поиске на сайте, который вернул мне какой-то график и список фильмов, я хочу, чтобы возвращался только этот список фильмов, короче говоря, я хочу стереть Из всех HTML, затем сделайте «цикл», пока я записываю только возвращенные заголовки. это как преобразовать его в XML, чтобы я мог разобрать по-другому .... как я могу это сделать? Спасибо

Ответы [ 2 ]

0 голосов
/ 01 сентября 2011

То, что вы хотите сделать, это в основном очистка экрана и удаление необходимой информации.Этот метод нестабилен, если вы не являетесь владельцем страницы, поскольку структура HTML может время от времени меняться.Но, если вы считаете, что не смогли получить версию API, которая возвращает результат, вот ваши варианты:

  • Анализ этого на сервере В этом сценарии вы создаете средний уровень, который в основном получаетстраницу и сделайте скребок экрана здесь.Если HTML-код достаточно организован (как это выглядит для этой страницы в вашем примере), вы можете просто пройтись по дереву HTML с помощью HTMLParser и получить нужные элементы и изменить формат.Для PHP попробуйте использовать HTML Parser, например PHP Simple HTML .Вы можете получить HTML-код и манипулировать им, чтобы вы могли изменить его на формат JSON / XML, который лучше подходит для вашего AJAX на мобильном интерфейсе
  • Синтаксический анализ его на вашем телефоне В этом сценарии вы будете использовать API-интерфейс телефона с собственным кодом(iOS / Android / Blackberry) сделать то же самое, что и выше
  • Разобрать его через AJAX в Javascript Аналогично вышеописанному, но крайне не рекомендуется, поскольку вы уже завернуты в веб-браузер и телефон с ограниченной мощностью

Из структуры страницы в вашем примере кажется, что все, что вам нужно, это получить div с идентификатором "list_body", оттуда вы получите дочерние элементы, которые содержат информацию, которую вы хотите

0 голосов
/ 01 сентября 2011

Это зависит от того, насколько надежна структура HTML.Вы можете загрузить его и выбрать как обычный DOM, если знаете, что выбрать.Вы упоминаете это как мобильное приложение, я настоятельно рекомендую выполнять сбор и разбор на вашем сервере и предоставлять список, который вы хотите, вместо того, чтобы пользователь делал это на своем телефоне, который имеет ограниченную скорость соединения и ограниченную мощность.

Если страница возвращает действительный XHTML, вы можете загрузить это в объект XML и также выбрать этот способ.Если это не так, тогда лучше всего загрузить его с помощью некоторой библиотеки имитации DOM.

jQuery Code:

var jCollectionMovieDIVs = $(html).find('div.movie');

... но, как я уже сказал, лучше сделать это на сервере, чем иметьтелефон делает это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...