如何解决解析HTML时的错误
How to solve error while parsing HTML
我正试图使用从谷歌电子表格中的网页中获取元素
function pegarAsCoisas() {
var html = UrlFetchApp.fetch("http://www.saosilvestre.com.br").getContentText();
var elements = XmlService.parse(html);
}
然而,我不断得到错误:
第2行出现错误:与元素类型"html"关联的属性名称"itemscope"后面必须跟有"="字符。(第4行,文件")
我该如何解决此问题?我想从这个网站获得H1文本,但对于其他网站,我必须选择其他元素。
我知道XmlService.parse(html)
的方法适用于其他网站,比如维基百科。正如你在这里看到的。
html
不是xml。你不需要试图解析它。你需要使用字符串方法:
function pegarAsCoisas() {
var urlFetchReturn = UrlFetchApp.fetch("http://www.saosilvestre.com.br");
var html = urlFetchReturn.getContentText();
Logger.log('html.length: ' + html.length);
var index_OfH1 = html.indexOf('<h1');
var endingH1 = html.indexOf('</h1>');
Logger.log('index_OfH1: ' + index_OfH1);
Logger.log('endingH1: ' + endingH1);
var h1Content = html.slice(index_OfH1, endingH1);
var h1Content = h1Content.slice(h1Content.indexOf(">")+1);
Logger.log('h1Content: ' + h1Content);
};
XMLService服务只能使用100%正确的XML内容。它不能容忍错误。谷歌应用程序脚本曾经有一个名为XML服务的容忍服务,但它已被弃用。然而,它仍然有效,您可以使用它,如下所述:GAS-XML
从技术上讲,HTML和XHTML是不一样的。请参阅XHTML和HTML之间的主要区别是什么?
关于OP代码,以下操作很好
function pegarAsCoisas() {
var html = UrlFetchApp
.fetch('http://www.saosilvestre.com.br')
.getContentText();
Logger.log(html);
}
正如前面的回答所说,应该使用其他方法,而不是直接对UrlFetchApp返回的对象使用XmlService。您可以先尝试将网页源代码从HTML转换为XHTML,以便能够使用Xml服务服务(XmlService),使用Xml,因为它可以直接与HTML页面一起工作,或者将网页源码直接作为文本文件处理。
相关问题:
- 如何在不使用XmlService的情况下解析Google Apps脚本中的HTML字符串
- 在谷歌应用程序脚本中解析html的最佳方式是什么
尝试用itemscope = ''
:替换itemscope
function pegarAsCoisas() {
var html = UrlFetchApp.fetch("http://www.saosilvestre.com.br").getContentText();
html = replace("itemscope", "itemscope = ''");
var elements = XmlService.parse(html);
}
有关更多信息,请查看此处。
相关文章:
- 生成pdf或其他非html文件时的错误处理
- 如何使用Node/Express显示有关特定错误的自定义html页面
- 回复'js'仅当请求有错误时(否则使用html)
- JavaScript/HTML 错误的解决方案
- HTML错误.标记未关闭
- W3 用 1 行 JavaScript 代码验证 html 错误
- 使用 JS 或 jQuery 捕获 HTML 错误
- 在IE8中创建元素内部HTML错误
- HTML 错误无法设置 null 属性(匿名函数)
- HTML 错误代码 206
- 在其上绘制时出现画布 HTML 错误
- Javascript/HTML错误“属性”selectReason“的值为null或未定义,而不是函数对象
- 获取html错误301,返回完全相同的链接
- "意外的令牌<"使用socket.io时出现HTML错误
- 如何在运行时检查javascript或html错误
- 使用PHP验证HTML错误
- HTML错误信息出现得太快
- Express 404错误处理无法找到模块'html'错误
- XMLHttpRequest—如何捕获返回HTML错误页面而不是数据的情况
- 在HTML错误上尝试使用textContent时出现错误.无法设置属性'textContent'unde