Избегайте многократных вызовов ImportXML

У меня есть электронная таблица Google, которую я использую для отслеживания нескольких видео на YouTube. Для каждого видео я использую ImportXML, чтобы получить следующие данные с отдельных страниц видео YouTube:

  • Заголовок
  • Просмотры
  • Ключевые слова

Чтобы было ясно - у меня нет проблем с использованием ImportXML таким образом. Этот подход отлично работает. Проблема в том, что каждый из этих отдельных фрагментов данных использует собственный вызов ImportXML. Это ограничивает меня до 16 видео, поскольку Google устанавливает разумное ограничение - 50 вызовов на лист. 3 датума * 16 роликов = 48 звонков, на 2 меньше максимума.

Я думаю, что хотел бы сделать ОДИН вызов для каждого видео, захватить весь HTML-код, поместить его в скрытую ячейку и РАЗБИРАТЬ ЭТУ ЯЧЕЙКУ для данных. Это позволило бы мне снять 50 видео, что, очевидно, гораздо более привлекательно.

У меня есть план, но я не знаю, смогу ли я таким образом разобрать CELL с помощью XPath. Документация, которую я видел, похоже, не позволяет использовать XPath таким образом, но это кажется настолько очевидным. Кто-нибудь делал это, или я лаю не на то дерево?


person gehwokka    schedule 08.06.2012    source источник


Ответы (1)


Вы не можете использовать несколько выражений XPath в одном вызове importXML.

Вы можете реализовать свою функциональность с помощью:

  • Управляйте своим URL-адресом - вместо вызова страницы видео вы можете вызвать определенную страницу поиска. Например: http://www.youtube.com/results?search_query=<your-user-name> и выберите каждый столбец с определенным выражением XPath один раз для всех видео.

  • Используйте более общий XPath - извлеките все теги, содержащие вашу информацию, а затем отфильтруйте те, которые вам нужны.

person Guy    schedule 09.06.2012
comment
Парень - отличные предложения! Я думал, что могу каким-то образом использовать ImportXML в каждой ячейке, но вместо ссылки на URL-адрес я мог бы ссылаться на местоположение CELL, которое будет иметь данные из первоначального вызова ImportXML, который фактически ссылался на URL-адрес. Это заставило меня задуматься - возможно, я мог бы использовать вызов ImportXML как задумано, а затем использовать REGEX для анализа ячейки и заполнения других ячеек необходимой мне информацией. Пробовал, но столкнулся с другим ограничением: ячейки Google могут содержать только 4000 символов. Я думаю, что решение PHP / JQuery / YouTubeAPI в порядке. Сначала я изучу ваши предложения. - person gehwokka; 10.06.2012
comment
Второе предложение получить много тегов (все div / span / ...), а затем отфильтровать их с помощью Regex, позволяет избежать ограничения в 4000 символов. Вы также можете попробовать использовать Google Refine для такой задачи, поскольку он может очень хорошо обрабатывать синтаксический анализ HTML, и вы можете загружать его вывод в электронную таблицу Google. - person Guy; 10.06.2012