javascript - 如何使用 Google Script 解析 URL 的 HTML 并将数据插入到 Google Sheet?
问题描述
我对 Google Apps 脚本和 JavaScript 完全陌生。
我只是想:
- 阅读A 列并执行 URL 请求。
- 解析 URL 的 HTML 以获取
title
andnum count
。 title
将写入B 列和Cnum count
列。
这是我的代码:
function getHtml()
{
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
var url_range = sheet.getRange('A1:A').getValue();
var response = UrlFetchApp.fetch(url);
var content = response.getContentText("UTF-8");
var title = new Array();
var num_count = new Array();
for (var i = 1; i < data.length; i++) {
title = content.match(/<title>(.*?)<\/title>/);
num_count = content.match(/<span class="num_count">(.*?)<\/span>/);
}
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = ss.getSheetByName("sheet1");
for (var i = 1; i < data.length; i++) {
sheet1.getRange(i,2).setValue(title[i]);
sheet1.getRange(i,3).setValue(num_count[i]);
}
}
但我只得到以下结果:
请告诉我应该改进什么。
解决方案
假设您的抓取有效,我认为这非常接近您的要求。
function getHtml()
{
var ss=SpreadsheetApp.getActive();
var sheet=ss.getActiveSheet();
var range=sheet.getRange(1,1,sheet.getLastRow(),3);
var data=range.getValues();
for(var i=0;i<data.length;i++){
var response = UrlFetchApp.fetch(data[i][0]);
var content = response.getContentText("UTF-8");
data[i][1]=content.match(/<title>(.*?)<\/title>/);
data[i][2]=content.match(/<span class="num_count">(.*?)<\/span>/);
}
rg.setValues(data);
}
推荐阅读
- c++ - 找不到“OpenCV”提供的包配置文件
- php - 在数组php的一个键中有多个键
- graphql-java - Graphql-java 是否支持对象数组作为复杂对象的查询参数?
- java - .m3u8 直播视频未在 exoplayer 上流式传输
- flutter - Flutter:圆形边框显示不需要的轮廓
- mysql - Delphi:Omni Parallel.foreach 中的 SQL 查询阻塞主线程
- javascript - 在javascript中将json从多个父ID转换为单父
- java - 如何在 Spring Boot 测试中连接到内存中的 HSQLDB 以进行查询
- python - 如何使用 Python 从 [*] 等引用中清除文本
- php - isset 函数提交 while 循环 PHP 中的所有按钮