#google-sheets #google-sheets-formula #google-sheets-importxml
#google-sheets #google-sheets-формула
Вопрос:
Я пытаюсь очистить эту страницуhttps://www.ncbi.nlm.nih.gov/gene/2597 чтобы получить «официальное полное имя», «также известное как» и некоторые другие сведения в Google Sheet с помощью IMPORTXML
.
Для «Официального полного имени» ( e.g. glyceraldehyde-3-phosphate dehydrogenase
) я пытаюсь это:
=IMPORTXML("https://www.ncbi.nlm.nih.gov/gene/55054", "//*[@id="summaryDl"]/dd[2]/text()")
дает мне # N / A
Поэтому я пытаюсь изменить ""
by ''
, чтобы использовать ячейки, в которые я помещаю URL и запрос, измените запрос всеми возможными способами: D.
Я замечаю, что могу использовать IMPORTHTML
(и иметь некоторую информацию о таблицах внутри страницы) или IMPORTRSS
, но не могу получить нужную информацию. Поэтому я думаю, что веб-сайт не блокирует очистку.
Я думал, что это проблема JS или XML, но, похоже, это не так (на мой взгляд … может быть, я что-то пропустил). Я даже пытаюсь использовать IMPORTJSON
чей-то код, но ничего не могу получить (честно говоря, вероятно, слишком сложный для использования).
Я действительно заблокирован здесь, поэтому, если кто-нибудь может помочь …?
Ответ №1:
вы можете попытаться очистить исходный код напрямую:
=ARRAY_CONSTRAIN(IMPORTDATA("https://www.ncbi.nlm.nih.gov/gene/55054"), 10000, 1)
а затем сделайте что-то подобное, чтобы получить значение «Также известное как»:
=REGEXREPLACE(QUERY(
{{""; ARRAY_CONSTRAIN(IMPORTDATA("https://www.ncbi.nlm.nih.gov/gene/55054"), 500, 1)},
{ARRAY_CONSTRAIN(IMPORTDATA("https://www.ncbi.nlm.nih.gov/gene/55054"), 500, 1); ""}},
"select Col2 where Col1 contains'Also known as'"), "<dd>|</dd>", "")
Комментарии:
1. отлично! извините, что спрашиваю об этом, но …. Я не понимаю! как это работает? Я пытаюсь изменить, чтобы получить официальное полное имя, но не могу найти решение, лол… какова цель ARRAY_CONSTRAIN и REGEXPLACE ?
2. REGEXREPLACE — это как замена, чтобы избавиться от этих HTML-тегов. ARRAY_CONSTRAIN является ограничителем, потому что весь исходный код слишком велик для импорта, поэтому мы просто импортируем первые 500 строк кода (потому что есть то, что нам нужно) и 1 столбец. да, официальное полное имя не может быть удалено, потому что в исходном коде его нет — вероятно, оно введено через JS, поэтому его там нет, но rest можно получить
3. «Официальное полное имя» не может быть удалено