google-apps-script - 全部退回
和
问题描述
我正在尝试使用 Google 电子表格中的应用程序脚本在网页中返回标题、H 标签和 P 标签。
我试过这个功能,但它似乎没有根据来源检索一些标签。
function myfunction(url) {
var _options = {
method: "GET"
};
try {
var _response = UrlFetchApp.fetch(url, _options);
var _regexp = /<title[^>]*?>(.*?)<\/title>|.*<h[1-6][^>]*?>(.*?)<\/h[1-6]>|<p[^>]*?>.*?<\/p>/gi;
var _tag = _response.getContentText().match(_regexp);
return _tag;
} catch (e) {
return e;
}
}
例如,此站点不返回 H1 标记。
我是应用程序脚本和正则表达式的新手,如果我能得到一些提示,那就太好了。
谢谢你!
解决方案
使用更新的正则表达式,代码将如下所示:
function myfunction(url) {
var _options = {
method: "GET"
};
try {
var _response = UrlFetchApp.fetch(url, _options);
var _regexp = /<title[^>]*?>(.|\n|\r)*?<\/title>|.*<h[1-6][^>]*?>(.|\n|\r)*?<\/h[1-6]>|<p[^>]*?>(.|\n|\r)*?<\/p>/gi;
var _tag = _response.getContentText().match(_regexp);
return _tag;
} catch (e) {
return e;
}
}
最初的问题是.
正则表达式不包括换行符。这已通过替换 修复.
,(.|\n|\r)
其中包括换行符。
推荐阅读
- android - gradle中的“com.google.android.gms ...”和“com.google.firebase ...”有什么区别?
- c# - Zipfile OpenRead throws Access to the path is denied exception in c# uwp app?
- javascript - HTML 使用 MediaRecorder 记录画布,里面有视频
- c# - Webform 的几个 Dropdownlist 值未存储在数据库中
- grails - grails域类约束中的空白和可为空有什么区别?
- python - 如何在 Mac 上修复 Python 中的“NotADirectoryError”
- postgresql - 为什么在 RHEL 8 / CentOS 8 上安装 PostGIS 3 是不可能的?
- laravel-blade - Laravel Blade 包含在包含中
- react-native - 如何在 React Native 中实现“几乎”全屏模式?
- azure - 如何将 Powershell 脚本文件路径从 azure devops repo 传递到 Azure devops 构建管道