使用谷歌脚本拉取网站数据

时间:2014-01-31 09:49:50

标签: scripting google-apps-script pull

我需要帮助制作这个可以从网站上取下价格的脚本并将其记录到带有日期和时间戳的电子表格中,这是:

function pullPrices() {
var page = UrlFetchApp.fetch('http://www.apbcc.com').getContentText();
var number = page.match(/Soya (X Nagpur): ([0-9,]+)/)[1];
SpreadsheetApp.getActive().getSheetByName('Sheet1').appendRow([new Date(), number]);
}

基本上在网页上他们列出了玉米和大豆的价格,我想每隔5分钟记录一次

输出应该看起来像1/1/2013 11.53 12.50(分别对于玉米和大豆) 但是,脚本在执行时抛出错误。 有人可以请一些光。


谢谢哈罗德。感谢你的提示响应,但是如果代码用文本提供,但是如果它必须使用UrlFetchApp.fetch('http://www.apbcc.com')获取html内容,则代码工作正常.getContentText();它不起作用。此外,在提取的内容中,价格位于参数的下一行,如下所示

<div style="font-size:14px;">
Soya (X Nagpur):&nbsp;
32.20</br>

Maize (WGL):&nbsp;
11.50</br>

Rice Bran Oil (Hyd):&nbsp;
51</br>

Maize (NZB):&nbsp;
11.30</br>

DCP:&nbsp;
29</br>

As on 03/02/2014:&nbsp;
.</br>

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

试试:

var reg =  /<[^<]+?>/g
var text = '<div style="font-size:14px;"> Soya (X Nagpur):&nbsp; 32.20</br> Maize (WGL):&nbsp; 11.55</br> Rice Bran Oil (Hyd):&nbsp; 51</br> Maize (NZB):&nbsp; 11.20</br> DCP:&nbsp; 29</br> As on 01/02/2014:&nbsp; .</br>';

function testReg(){
  var priceList ={};
  var prices = text.split(reg);
  for(var i in prices){
   var val = prices[i].split(":&nbsp; "); 
   priceList[val[0]]=val[1];
  }
  Logger.log(JSON.stringify(priceList));
  Logger.log("maize: "+priceList[" Maize (WGL)"]);
  Logger.log("soya: "+priceList[" Soya (X Nagpur)"]);
  SpreadsheetApp.getActive().getSheetByName('Sheet1').appendRow([new Date(), priceList[" Soya (X Nagpur)"],priceList[" Maize (WGL)"]]);
}