如何从此fetch语句中提取主体?我可以成功获取URL,但是我正在结果集中寻找一些特定的HTML元素。当我在JSFiddle中运行脚本时,它会提供结果,但是会停止,因为html的格式不正确并且无法被DomParser解析。我希望将结果作为字符串返回,以便可以使用正则表达式来解析结果集。
注意:自去年6月以来,政府站点的API已损坏。我正在尝试其他方法来获取以前通过API提供的数据。
我已经能够使用Google Apps脚本成功解析此内容,但是我希望它可以使用JavaScript以独立的html形式工作
fetch('https://safer.fmcsa.dot.gov/query.asp? searchtype=ANY&query_type=queryCarrierSnapshot&query_param=MC_MX&query_string=146892', {
mode: 'no-cors' // 'cors' by default
})
.then(function(response) {
// When the page is loaded convert it to text
return response.text()
})
.then(function(htmlString) {
// Initialize the DOM parser
var parser = new DOMParser();
// Parse the text
var doc = parser.parseFromString(htmlString, "text/xml");
// You can now even select part of that html as you would in the regular DOM
// Example:
// var docArticle = doc.querySelector('article').innerHTML;
console.log(doc);
})
.catch(function(err) {
console.log('Failed to fetch page: ', err);
});
这是JSFiddle:https://jsfiddle.net/6b9s1Lwz/ 返回解析错误。
这是我正在使用的Apps脚本代码:它工作得很好,试图使其在javascript中工作是我的挑战。
function getSaferData() {
var saferUrl = 'https://safer.fmcsa.dot.gov/query.asp?searchtype=ANY&query_type=queryCarrierSnapshot&query_param=MC_MX&query_string=';
var MCNum =146892;
var fetchUrl =saferUrl+MCNum;
var response = UrlFetchApp.fetch(fetchUrl);
var result = response.getContentText().match(/<B>(.*?)<\/B>/g);
var carrierName = result[1].replace(/<\/?B>/g,'')
Logger.log(result + " " + result.length);
console.log(carrierName);
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange(1,1).setValue(carrierName);
}