繁体   English   中英

使用Google Apps脚本执行抓取时选择一个选项

[英]Select an option while performing a fetch using Google Apps Script

对于那些认识的人和以前曾被问过的人来说,这可能是一个琐碎的问题(但我找不到)。

网站包含一个用于选择特定日期的列表框。 默认情况下,日期已设置为下一次会议举行的日期。
下次会议召开

运用

var site     = <a site>
var response = UrlFetchApp.fetch(site);
var data     = response.getContentText();

我可以获得页面的内容。 在许多其他数据中,页面源包含

<h1 class="object_title">Vergaderingen gemeenteraad en commissies</h1>
    <!-- Content -->
    <div id="content" class="contentarea">
        <div id="phContent_pnlSelectDatum">

            <div class="formulier-grijs">
                <fieldset>          
                        <div class="rij">
                            <label for="Zoekterm" class="width115">Vergaderdatum</label>
                          <select name="ctl00$phContent$ddlYear" onchange="javascript:setTimeout(&#39;__doPostBack(\&#39;ctl00$phContent$ddlYear\&#39;,\&#39;\&#39;)&#39;, 0)" id="phContent_ddlYear">
        <option value="18-12-2014">18 december 2014</option>
        <option value="17-12-2014">17 december 2014</option>
        <option value="13-11-2014">13 november 2014</option>
        <option value="12-11-2014">12 november 2014</option>
        <option selected="selected" value="25-09-2014">25 september 2014</option>
        <option value="09-07-2014">9 juli 2014</option>
        <option value="05-06-2014">5 juni 2014</option>
        <option value="06-05-2014">6 mei 2014</option>
        <option value="27-03-2014">27 maart 2014</option>
        <option value="26-03-2014">26 maart 2014</option>
        <option value="25-02-2014">25 februari 2014</option>
        <option value="30-01-2014">30 januari 2014</option>
        <option value="12-12-2013">12 december 2013</option>
                                    </select> 
                      </div>
                </fieldset>
            </div>

            </div>
   </div>

根据选择的日期,页面的其余部分将被更新
显然,除了2014年9月25日,我想从其他会议中检索数据。

因此,我想知道在执行提取时应添加哪些内容(参数?)以从列表框中选择另一个日期(=选项)。
通常,我不知道listboc中存在哪些(和多少)选项,因此我想遍历所有这些选项。

我正在为UiApp使用Google Apps脚本

当用户更新选择框时,这是检索新页面的部分:

__doPostBack(\&#39;ctl00$phContent$ddlYear\&#39;,\&#39;\&#39;)

您需要检查js源以确切地了解该函数的功能,因为发布数据中可能还会发送其他选项。 但是有可能它只是提交具有该值的发帖请求,如果是这样的话,可能会起作用:

var url = 'http://domain.com/pageUrl.html';
var options = {
  method = 'POST',
  payload = {
    'ctl00$phContent$ddlYear': '18-12-2014'
  }
};
var response = UrlFetchApp.fetch(url, options);

那只是一个提交请求,提交该选择框的“ 2014年12月”值。

就像我说的那样,如果那行不通,那么您真的需要查看js中的__doPostBack()的源,以弄清楚它的确切内容以获取所需的响应。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM