我搜索了一个解决方案,但没有任何相关性,所以这是我的问题:
我想解析一个包含HTML文本的字符串.我想用JavaScript做.
我试过这个库,但它似乎解析了我当前页面的HTML,而不是字符串.因为当我尝试下面的代码时,它会更改我的页面标题:
var parser = new HTMLtoDOM("<html><head><title>titleTest</title></head><body><a href='test0'>test01</a><a href='test1'>test02</a><a href='test2'>test03</a></body></html>", document);
Run Code Online (Sandbox Code Playgroud)
我的目标是从HTML外部页面中提取链接,就像字符串一样.
你知道一个API来做吗?
var page = UrlFetchApp.fetch(contestURL);
var doc = XmlService.parse(page);
Run Code Online (Sandbox Code Playgroud)
上面的代码在使用时给出了解析错误,但是如果我将XmlService类替换为已弃用的Xml类,并且设置了lenient标志,则它会正确解析html.
var page = UrlFetchApp.fetch(contestURL);
var doc = Xml.parse(page, true);
Run Code Online (Sandbox Code Playgroud)
问题主要是因为html的javascript部分没有CDATA而且解析器抱怨以下错误.
The entity name must immediately follow the '&' in the entity reference.
Run Code Online (Sandbox Code Playgroud)
即使我删除所有<script>(.*?)</script>使用正则表达式,它仍然抱怨因为<br>标签没有关闭.是否有一种将html解析为DOM树的简洁方法.
我正在尝试从 HTML 页面中提取字符串变量中的一些数据。我知道Google Apps脚本代码是在服务器端执行的,并且document对象没有定义。
是否有其他简单的方法可以使用 CSS 选择器(如 ) 来提取数据document.querySelector?
我想加载由 JS(例如 AngularJS 或类似)生成的网页,然后(仅)使用 Google Apps 脚本抓取它。我怎样才能做到这一点?
我正在寻找类似的东西:
const response = UrlFetchApp.fetch( urlToExternalJsPage );
const content = response.getContentText();
// scrape content
Run Code Online (Sandbox Code Playgroud)
只是,也许,UrlFetchApp用来图书馆或其他什么的来代替?也许是 GAS 的 Puppeteer 库、GAS 的 Cheerio 库或其他东西?
如何加载外部加载的 JS 页面并在生成后从该页面读取 HTML 以抓取它?
我看到这篇文章:The Best Way to Load Javascript,它提供了以下代码。
function loadScript(url, callback){
var script = document.createElement("script")
script.type = "text/javascript";
if (script.readyState){ //IE
script.onreadystatechange = function(){
if (script.readyState == "loaded" || script.readyState == "complete"){
script.onreadystatechange = null;
callback();
}
};
} else { …Run Code Online (Sandbox Code Playgroud)