Как извлечь название фильма из BoxOfficeMojo с помощью Xpath - PullRequest
0 голосов
/ 12 ноября 2018

Поэтому я пытаюсь импортировать заголовок фильма в Google Sheets с помощью функции ImportXML, которая требует, чтобы я дал ему Xpath-запрос .Проблема в BoxOfficeMojo, который очень странно структурирован, поэтому я не могу понять, как делать запросы.

В Google Sheets все работает отлично, но я просто не могусгенерировать правильный Xpath-запрос, который дает мне только название фильма, когда я предоставляю ImportXML-ячейке ссылку.

Это то, с чем я должен работать:

Я пробовал несколько разных запросов, в том числе один Chrome сгенерирует для меня, когда я осматриваю сайт, но BoxOfficeMojo структурирован странным образом, что означаетЯ не могу использовать какую-либо логику для создания своего запроса. Я занимался этим уже несколько часов, и самый близкий, который я получил для получения правильного результата, это этот запрос :

//*[//table[@border = '0']]/td/font/b

Что дает мне такой результат:

The A-Team

4

Я не могу на всю жизнь понять, как я отфильтровываю название фильма («Команда А» в данном случае).

Для правильной оценки, это то, что Chrome предлагает в качестве Xpath, когда я проверяю сайт:

//*[@id="body"]/table[2]/tbody/tr/td/table[1]/tbody/tr/td[2]/font/b

Приведенный выше запрос не работает, и простовыдает ошибку, как будто запрос ничего не возвращает ...

Возможное решение Я видел некоторых людей, которые успешно сделали Xpath-запрос, где они ищут определенную фразу,и вернуть содержимое после этой фразы (посмотрите на это: python: xpath возвращает пустой список из boxofficemojo.com ).

Однако я не могу понять, как мне искатьназвание фильма, поскольку оно не окружено каким-либо текстом.

Весь смысл в том, чтобы очистить что-то столь простое, как этот заголовок, в том, что заголовки на BoxOfficeMojo меняются в течение года, и мне нужен точный заголовокдля меня, чтобы собрать и сравнить данные в Google Sheets.

Надеюсь, я предоставил мастеру Xpath в толпе достаточно информации, чтобы составить для меня предложение.

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

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

Я пробовал этот xpaths для нескольких фильмов и работал нормально

//font[@face="Verdana" and @size="6"]/b
0 голосов
/ 12 ноября 2018

Как любезно предложил Андерссон, используя этот запрос:

//font[@size="6"]/b

Сделал трюк:)

EDIT:

Оказалось, что в некоторых фильмах заголовки были отформатированы таким образом, что результат разбивался по нескольким ячейкам, что приводило к разбивке моей таблицы.

Однако это решение, похоже, работает для всех фильмов и возвращает одну ячейку только с заголовками:

=JOIN(" ";IMPORTXML(H81;"(//font[@face='Verdana']/b)[2]"))
...