Google Apps 脚本正则表达式返回 null(数据抓取)(谷歌表格)
Posted
技术标签:
【中文标题】Google Apps 脚本正则表达式返回 null(数据抓取)(谷歌表格)【英文标题】:Google Apps Script regex returning null (data scraping) (google sheets) 【发布时间】:2020-09-15 14:08:14 【问题描述】:目标: 我们的目标是从该网站获取 Shiller PE,并将其放入每 24 小时更新一次的谷歌表格中。
网址:https://www.gurufocus.com/sector_shiller_pe.php
The table on the website with "shiller pe" values that needs to be scraped
Live values needed to be put in this google sheet
已尝试的解决方案:
-
=IMPORTXML("URL","XPATH")
尝试在电子表格中使用此功能,但由于网站太慢而无法抓取网站
-
Google Apps 脚本
制作此脚本以获取数据的 html 并返回能源部门的席勒值:
function energyFinder()
var url = "https://www.gurufocus.com/sector_shiller_pe.php";
const html = UrlFetchApp.fetch(url).getContentText();
var regex = new RegExp(/\/mq5xwwf">26<\/a><\/b><\/u><\/td><td class="text_center">([0-9][0-9].[0-9][0-9])<\/td>/);
var e = regex.exec(html);
return e
Logger.log(e)
但这只是返回空值。任何解决方案都会有所帮助,谢谢!
附言新网站,所以我还不能嵌入图片,很抱歉
【问题讨论】:
您能否添加Logger.log(html)
以确保页面正在下载。
【参考方案1】:
您可能对正则表达式本身有疑问,因为26
之前没有引号。
这应该可行:
\/mq5xwwf?>26<\/a><\/b><\/u><\/td><td class='text_center'>([0-9][0-9]\.[0-9][0-9])<\/td>
【讨论】:
以上是关于Google Apps 脚本正则表达式返回 null(数据抓取)(谷歌表格)的主要内容,如果未能解决你的问题,请参考以下文章
从 Google Apps 脚本上的 URL 获取文件 ID 的最简单方法
在 Google Apps 脚本中使用 Google People API 删除联系人返回 404 错误
带有 GraphQL 解析错误的 Google Apps 脚本 API 请求