r - if - 参数长度为零
问题描述
我打算买一台 iPad,但它只有几分钟的库存,然后又用完了。因此,我编写了一个 R 脚本来检查在亚马逊上可用时触发电子邮件的可用性。
我在 R Studio 服务器上运行这个脚本,并使用 cronR 安排它每 1 分钟运行一次。
library(xml2)
library(rvest)
library(mailR)
library(stringr)
rm(list=ls())
link <- "https://www.amazon.in/dp/B0864JWYQX/" #iPad
ipad <- read_html(link)
#Availability
avail <- ipad %>%
html_nodes("#availability .a-size-medium") %>%
html_text() %>%
str_remove_all("\\\n")
#item name
item <- ipad %>%
html_node("#productTitle") %>%
html_text() %>%
str_remove_all("\\\n")
if (avail == "Currently unavailable.") {
print(paste("Unavailable on",Sys.time()))
} else {
sender <- "Ashwini Kalantri <my@email.com>"
to <- c("Ashwini Kalantri <my@email.com>","trigger@applet.ifttt.com")
body <- paste0("<p>",item," is available on ",
format(Sys.time(),"%d %B %Y %I:%M %p"),
".</p><p><a href =",quote("https://www.amazon.in/dp/B0864JWYQX/"),">BUY NOW!</a></p>")
send.mail(from = sender,
to = to,
subject = paste0(item," #ipad"),
body = body,
html = T,
smtp = list(host.name = "smtp.gmail.com", port = 465,
user.name = "my@email.com",
passwd = "password", ssl = TRUE),
authenticate = TRUE,
send = TRUE)
}
第一天,脚本运行良好,没有任何错误。但后来我开始在日志文件中收到以下错误。这是随机的,有时脚本会根据需要完美运行,但有时会出现以下错误。当我在 R Studio 控制台中运行该脚本时,该脚本每次都按需要运行。
Error in if (avail == "Currently unavailable.") { :
argument is of length zero
Execution halted
我不知道出了什么问题。非常感谢帮助。
解决方案
推荐阅读
- node.js - IMAP Node.js 执行两次,两次保存电子邮件并且不会保存来自发射器的电子邮件
- javascript - 在Javascript中获取两个数组对象的差异
- linear-programming - 将逻辑约束转换为 python 纸浆代码
- php - 使用 f_open 的 PHP 管道数据
- python - pynput 不让 tkinter 创建窗口
- python - 在 django views.py 代码中使用数组 - 这是一个好习惯吗?
- reactjs - TypeScript React Babel ReferenceError:找不到变量:regeneratorRuntime
- c# - 随时间填充未在对象实例中设置的对象引用的定时进度条
- r - 寻找一种有效的方法来比较时间序列数据中的点和区域与多个自变量
- android - Android Studio 未解决的懒惰参考(kotlin)