Почему я получаю «N / A» при использовании xpath в Google sheet-importxml, а не в Chrome HTML-отладчике? - PullRequest
1 голос
/ 17 апреля 2019

Я работаю над проектом по созданию веб-страниц на следующем веб-сайте. 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()

Все эти коды работают, когда я использую отладчик HTML в Chrome, но когда я вставляю их в IMPORTXML, он возвращает N/ А.Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 18 апреля 2019

Веб-сайт 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
...