为什么在 Google sheets-importxml 中使用 xpath 时得到 "N/A",但在 Chrome HTML 调试器中却没有?

Why do I get "N/A" when using xpath in Google sheets-importxml, but not in Chrome HTML debugger?

我正在以下网站上进行网络抓取项目 http://www.comune.taranto.it/index.php/avvisi。我想提取第一个 table 的内容并将它们插入到 Google 电子表格中。我正在尝试使用不同的 xpath 代码:

//td[contains(@class,'list-title')]/a/text()
//tbody[1]/tr/td/a/text()
//tr[contains(@class,'cat-list')]/td/a/text()

当我使用 Chrome 的 HTML 调试器时,所有这些代码都有效,但是当我将它们粘贴到 IMPORTXML 中时,它 returns N/A。 有人可以帮助我吗?

网站 http://www.comune.taranto.it/index.php/avvisi return 的标记无效。 我只是试图从控制台获取网站:

await fetch('http://www.comune.taranto.it/index.php/avvisi').then(res => res.text())

我得到了:

<?xml version="1.0" encoding="utf-8"?><!DOCTYPE html
 PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it-it" lang="it-it" dir="ltr">
<head>
...

所以 <?xml version="1.0" encoding="utf-8"?> 不应该在那里。这就是 IMPORTXML 无法解析它的原因。为了验证它,我只是在 repl.it 上临时托管网站,有和没有 xml 声明。并且 IMPORTXML 能够在网站没有它时进行解析。

那么解决方案是什么?

  • 如果您可以将网站更改为 return 有效 html
  • 或使用Google App Scripts 并编写代码来解析网站
  • 或者使用某种return有效html
  • 的代理网站