IMPORTXML在NCBI网站的特定页面上返回#N / A - 抓取保护?

问题描述 投票:0回答:1

我正在试图抓住这个页面https://www.ncbi.nlm.nih.gov/gene/2597以使用IMPORTXML获得“官方全名”,“也称为”和其他一些信息到Google表格。

对于“官方全名”(e.g. glyceraldehyde-3-phosphate dehydrogenase),我试试这个:

=IMPORTXML("https://www.ncbi.nlm.nih.gov/gene/55054", "//*[@id="summaryDl"]/dd[2]/text()")

给了我#N / A.

所以我尝试通过""更改'',使用我放置URL和查询的单元格,以所有可能的方式更改查询:D。

我注意到我可以使用IMPORTHTML(并且有关于页面内部表格的一些信息)或IMPORTRSS但是无法获得我想要的信息。所以我认为网站不会阻止抓取。

我认为这是一个JS或XML问题,但它似乎不是(在我看来......也许我错过了一些东西)。我甚至试图从某些代码中使用IMPORTJSON但却无法得到任何东西(说实话,可能太复杂了)。

我真的被封锁了,所以如果有人可以帮忙......?

google-sheets google-sheets-formula google-sheets-importxml
1个回答
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>", "")

0

© www.soinside.com 2019 - 2024. All rights reserved.