【发布时间】:2018-02-21 16:16:09
【问题描述】:
在this SO questions的帮助下,我正在尝试抓取following website。我想要两支球队和时间。例如,第一个条目是 Chicago |迈阿密 | 12:30 PM,最后一个条目是科罗拉多 |亚利桑那 |晚上 10 点 10 分。我的代码如下
function espn_schedule() {
var url = "http://www.espn.com/mlb/schedule/_/date/20180329";
var content = UrlFetchApp.fetch(url).getContentText();
var scraped = Parser.data(content).from('class="schedule has-team-logos align-left"').to('</tbody>').iterate();
var res = [];
var temp = [];
var away_ticker = "";
scraped.forEach(function(e){
var away_team = Parser.data(e).from('href="mlb/team/_/name/').to('"').build();
var time = Parser.data(e).from('a data-dateformat="time1"').to('</a>').build();
if (away_ticker == "") away_ticker = away_team;
if (away_team != away_ticker) {
temp.splice(1, 0, away_ticker);
res.push(temp);
temp = [];
away_ticker = away_team;
temp.push(time);
}
});
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Schedule");
ss.getRange(ss.getLastRow() + 1, 1, res.length, res[0].length).setValues(res);
}
我收到以下错误:
TypeError:无法从未定义中读取属性“长度”。 (第 42 行,文件“代码”)
【问题讨论】:
-
我看到的第一个区别是他们在
.from('class=\"screener-body-table-nw\"')调用中逃脱了"。也请 Logger.log(scraped) 看看你是否得到任何东西。
标签: google-apps-script web-scraping google-sheets urlfetch