2014-09-02 41 views
0

對於那些知道的人和以前曾經問過的人(但我找不到它)可能是一個微不足道的問題。在使用Google Apps腳本執行抓取時選擇一個選項

一個網站包含一個列表框來選擇一個特定的日期。默認情況下,日期已設置爲會議的下一個日期。
the next date a meeting will take place

使用

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中存在什麼(以及有多少)選項,所以我想遍歷所有這些選項。

我使用谷歌Apps腳本的了UiApp

回答

1

這是被檢索的新頁面的部分,當用戶更新選擇框:

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

你需要檢查js的來源可以精確地確定該功能的功能,因爲在發佈數據中可能會發送其他選項。但它是可能的,它只是提出與價值POST請求,如果有這樣的事情可能工作:

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

這只是一個post請求它提交該選擇框的「2014年12月的價值。

正如我所說,如果這不起作用,那麼您真的需要查看js中__doPostBack()的來源,以確定它發佈的內容以獲取所需的響應。

相關問題