相关疑难解决方法(0)

用JS解析HTML字符串

我搜索了一个解决方案,但没有任何相关性,所以这是我的问题:

我想解析一个包含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来做吗?

html javascript dom html-parsing

227
推荐指数
10
解决办法
36万
查看次数

在谷歌应用脚​​本中解析html的最佳方法是什么?

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 javascript regex google-apps-script

16
推荐指数
5
解决办法
2万
查看次数

如何使用 CSS 选择器解析 HTML 字符串?

我正在尝试从 HTML 页面中提取字符串变量中的一些数据。我知道Google Apps脚本代码是在服务器端执行的,并且document对象没有定义。

是否有其他简单的方法可以使用 CSS 选择器(如 ) 来提取数据document.querySelector

css-selectors html-parsing google-apps-script

5
推荐指数
0
解决办法
2454
查看次数

如何在Google Apps脚本中动态加载外部AJAX网页?

我想加载由 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 以抓取它?

想法1

我看到这篇文章: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)

javascript ajax web-scraping google-apps-script puppeteer

5
推荐指数
0
解决办法
946
查看次数