如何在Google App Script中解析字符串?

时间:2015-10-19 11:43:46

标签: javascript google-apps-script google-spreadsheet-api

我想知道是否可以在Google App Script中解析字符串。

这是我的问题:

如果我在Google App脚本编辑器中输入以下代码:

function test() {

  var response = UrlFetchApp.fetch("http://www.pudim.com.br/");
 Logger.log(response.getContentText());

}

我将进入Log the Page的HTML,如您所见:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <link rel="stylesheet" href="/SiteBuilder/css/Pessoal03Palha.css" type="text/css" />
    <meta name="Keywords" content="" />
    <meta name="Description" content="" />
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
    <div id="SiteBuilder_Principal">
        <div id="SiteBuilder_Topo" style="background-image: url('/SiteBuilder/UploadUsers/pudim.com.br/634607701572677834.png');">
            <div id="SiteBuilder_Topo_Objeto">

            </div>
            <div id="SiteBuilder_Topo_Frente"></div>
            <div id="SiteBuilder_Logo" style="top:54px; left:70px;;">
                <img src="/SiteBuilder/UploadUsers/pudim.com.br/634607755224560419.jpg" border="0" />
            </div>
        </div>
        <div id="SiteBuilder_Menu">
            <div id="SiteBuilder_Menu_Area">
                <style>
      .dv_position{float:left; padding-right:12px; font-family: Arial; font-size: 10px; color: White; font-weight: bold;}
    </style><div class="dv_position"><table><tr valign="top"><td><img src="/SiteBuilder/Templates/Pessoal03/Pessoal03Palha/imagens/tc_contrutor_template03_pessoal_palha_icon.gif"></img></td><td><a href="index.html"></a></td></tr></table></div>
            </div>
        </div>
        <table id="SiteBuilder_TbConteudo" cellpadding="0" cellspacing="0" border="0">
            <tr>
                <td align="left" valign="top">
                    <div id="SiteBuilder_Conteudo">
                        <div style="text-align: center;"><img alt="" src="/SiteBuilder/UploadUsers/pudim.com.br/pudim.jpg" style="border-width: 0px; border-style: solid;" /></div>

                    </div>
                </td>
            </tr>
        </table>
        <div id="SiteBuilder_Rodape">
            <div id="div_RodapeViewMode" class="div_RodapeViewMode">
                <a href="mailto:pudim@pudim.com.br">pudim@pudim.com.br</a>

            </div>
        </div>
        <div id="SiteBuilder_HostedBY" style="float: right; color: #333333">
            Hosted by <a href="http://www.tecla.com.br/" target="_blank" style="font-weight:bold; color:#333333">Tecla</a>
        </div>
    </div>
</body>
</html>

我使用了一个非常简单的网站作为例子。变量“response”将是一个字符串。而且我希望能够从这个字符串中得到我想要的任何值,例如想象的来源或页面tittle。

最终,我想使用Google SpreadSheet从一系列网址中获取一些信息。我将URL放在一列中,而在其他列中,我希望从电子商务中获取某些产品的名称。

我意识到可能有一些更简单的方法来实现这一目标。我要求提供Google App Script解决方案,因为这是我最熟悉的语言。但是,如果使用Google App Script无法实现这一目标,我会很高兴听到一些替代方案。

非常感谢!

1 个答案:

答案 0 :(得分:0)

你想要正则表达式:w3schools.com/jsref/jsref_obj_regexp.asp,也可以用indexOf()来完成,但它更难。

获取所有图像src属性:

var ind;
while( ind = /<img src="([^"]*)/.exec( response.getContentText()) ){ 
   Logger.log(ind[1])
}