为什么在Googlesheets-importxml中使用xpath而不在Chrome HTML调试器中使用xpath时会得到“ N / A”信息?

时间:2019-04-17 16:40:52

标签: xpath google-sheets-importxml

我正在以下网站http://www.comune.taranto.it/index.php/avvisi上进行网络抓取项目。我想提取第一个表的内容并将其插入Google Spreadsheet。我正在尝试使用不同的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中时,它返回N / A。 有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

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

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能够在网站没有网站时进行解析。

那有什么解决方案?

  • 如果您可以随后更改网站以返回有效的html
  • 或者使用Google App脚本并编写代码以解析网站
  • 或使用某种可返回有效html的代理网站