可能是一个微不足道的问题,对于那些知道的人和之前被问过的人(但我无法找到)。
网站包含用于选择特定日期的列表框。默认情况下,日期已设置为会议的下一个日期
使用
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('__doPostBack(\'ctl00$phContent$ddlYear\',\'\')', 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中存在哪些(以及多少)选项,所以我想循环遍历所有这些选项。
我正在使用Google Apps脚本获取UiApp
答案 0 :(得分:1)
当用户更新选择框时,这是检索新页面的部分:
__doPostBack(\'ctl00$phContent$ddlYear\',\'\')
您需要检查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月的&#39;该选择框的值。
正如我所说,如果那不起作用,那么你真的需要查看js中__doPostBack()的来源,以确切了解它发布的内容以获得所需的响应。