【发布时间】:2020-06-06 08:54:22
【问题描述】:
我正在尝试自学一些编码和网站抓取。但是我在添加参数时遇到问题。没有参数,我需要调整不可取的功能。这是不带参数的工作函数
function import1() {
var html, content = '';
var response = UrlFetchApp.fetch("https://www.fundsquare.net/security/summary?idInstr=275136");
if (response) {
html = response.getContentText();
if (html) content = html.match(/<span class="surligneorange">([\d.]*).*<\/span>/)[1];
}
return content;
}
这就是我调整它的方式,使其具有参数:
function importval(url, name) {
var found, html, content = '';
var response = UrlFetchApp.fetch(url);
found = "/<span class="+name+">([\d.]*).*<\/span>/"
if (response) {
html = response.getContentText();
if (html) content = html.match(found)[1];
}
return content;
}
但是,它不起作用。当我尝试调整它时,它会给出不同的错误。问题在于URL 有一些错误,name 有其他问题。使用上面的代码,错误是url 变量没有值。我不确定如何使用参数制作公式
我知道代码found = "/<span class="+name+">([\d.]*).*<\/span>/" 不适用于每个网站,但如果我能做到这一点,我可以弄清楚如何调整它,使其适用于我想要的网站。现在它只适用于 span 类,但可以更改它以便适用于更多网站(我认为)。
Edit 6-6 16:05这是一个关于解决方案的问题
这是匹配应该找到的代码:
(/<span class="surligneorange">([\d.]*).*<\/span>/)[1];
这是你写的代码
("<span class=\""+name+"\">([\\d.]*).*<\\/span>")。
需要\""+name+"\" 中的两个\ 的原因是什么?在玩弄它时,显示哪些部分是字符串以及哪些部分是应该实现的变量似乎很重要。但我不确定它是如何工作的,因为"<span class=\" 包括\ 但"+name+"\" 似乎在" " 之间。为什么包含一个\ 而在" " 之间单独包含一个?
【问题讨论】:
标签: javascript regex google-apps-script web-scraping parameters