Javascript 解析HTML时如何解决错误
我试图通过以下方式从谷歌电子表格中的网页中获取元素:Javascript 解析HTML时如何解决错误,javascript,google-apps-script,web-scraping,html-parsing,Javascript,Google Apps Script,Web Scraping,Html Parsing,我试图通过以下方式从谷歌电子表格中的网页中获取元素: function pegarAsCoisas() { var html = UrlFetchApp.fetch("http://www.saosilvestre.com.br").getContentText(); var elements = XmlService.parse(html); } 然而,我不断地发现错误: 第2行错误:与元素类型“html”关联的属性名“itemscope”必须后跟“
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);
};
函数pegarAsCoisas(){
var urlFetchReturn=UrlFetchApp.fetch(“http://www.saosilvestre.com.br");
var html=urlFetchReturn.getContentText();
Logger.log('html.length:'+html.length);
var index_of h1=html.indexOf('尝试用
itemscope=''
替换itemscope
:
有关更多信息,请参阅。XMLService服务仅适用于100%正确的XML内容。它不具有容错性。Google apps脚本以前有一个名为XML service的容错服务,但它已被弃用。但是,它仍然有效,您可以使用它,如此处所述:从技术上讲,HTML和XHTML是不同的。请参阅 关于操作代码,下面的代码可以正常工作
function pegarAsCoisas() {
var html = UrlFetchApp
.fetch('http://www.saosilvestre.com.br')
.getContentText();
Logger.log(html);
}
正如在前面的回答中所说,应该使用其他方法,而不是直接在UrlFetchApp返回的对象上使用XmlService。您可以尝试首先将网页源代码从HTML转换为XHTML,以便能够使用Xml服务(XmlService),使用Xml服务,因为它可以直接处理HTML页面,或者直接将web页面源代码作为文本文件处理
相关问题:
.gs
服务器端代码中选择ID、类等的方法,让我知道怎么做。2017年3月开始工作!indexOf
允许调整搜索起点。有关的详细信息。此代码返回:ReferenceError:“replace”未定义。(第3行,文件“code”)
function pegarAsCoisas() {
var html = UrlFetchApp
.fetch('http://www.saosilvestre.com.br')
.getContentText();
Logger.log(html);
}