1

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

4

1 回答 1

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 Scripts 并编写代码来解析网站
  • 或者使用某种返回有效 html 的代理网站
于 2019-04-18T07:46:53.940 回答