2015-02-27 5 views
0

Так что я не профессиональный программист, но я пытаюсь очистить данные с домашней страницы Reuters и импортировать ее в электронные таблицы google. Я знаю, что уже были ответы на вопросы о выскабливании от Reuters, однако это меня не помогло.Google Spreadsheet xpath scraping

Я хочу данных с этой страницы: http://www.reuters.com/finance/stocks/financialHighlights?symbol=9983.T

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

Так что, естественно, мой вопрос к вам: как я могу получить конкретные значения из таблиц? Например, я хочу, чтобы первое значение вышло из строки, помеченной как «Маржа чистой прибыли (TTM)». Значение должно быть 7.30.

Итак, я получил xpath с помощью инструментов разработчика Google Chrome, щелкните правой кнопкой мыши на элементе и выберите «copy xpath». Поскольку я не программист, я не знаю другого способа для получения определенного элемента из таблиц.

Я попробовал следующую функцию в Таблицах Google:

=IMPORTXML(URL as written above,"//*[@id='content']/div[2]/div/div[2]/div[1]/div[13]/div[2]/table/tbody/tr[14]/td[2]") 

но он возвращает

"#N/A - Error, imported content is empty" 

Что я могу сделать, чтобы получить значение?

ответ

2

IMPORTXML() Функция Google Таблиц, как известно, невероятно ошибочна, и неудивительно, что люди в ней выкапывают реальные ошибки. Тем не менее, мы точно не знаем, почему ваше оригинальное выражение XPath не работает.

Я хочу получить первое значение из строки, обозначенную «Чистая прибыль (TTM)». Значение должно быть 7.30.

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

=IMPORTXML("http://www.reuters.com/finance/stocks/financialHighlights?symbol=9983.T","//tr[contains(td[1],'Net Profit Margin (TTM)')]/td[2]") 

что означает

Выбрать все tr элементы, где текстовое содержание первого td дочернего элемента содержит «Net Profit MArgin (TTM) »и выберите второй td этого tr.

и результат будет

7.3 
+0

Thx за тонну! Кажется, сработало! – Rob