【发布时间】:2020-01-06 22:18:14
【问题描述】:
我正在使用 R 为一列 HTML 页面提取域名。为此,我创建了一个函数“域”。它似乎工作正常,直到它击中以“mailto:person@example.com”形式出现的页面。这些显然是电子邮件的链接。我仍然想将这些合并到我的数据集中,但我得到的错误是:“strsplit(gsub("http://|https://|www\.", "", x), "/")[[c(1, 1)] 中的错误] : 下标越界"
如何修改此代码以绕过“mailto”页面?
这是我的功能
domain <- function(x) strsplit(gsub("http://|https://|www\\.","", x),"/")[[c(1,1)]]
这是我的命令
mainpagelevel3$url <- sapply(mainpagelevel3$url, domain)
我在一组不包含“mailto:”页面的 url 上运行了这段代码,它工作得很好,所以我认为这一定是它卡住的地方。我不介意它是否导致“person@example.com”或保持原样。
【问题讨论】:
-
如果该功能在其余情况下工作正常,为什么要打扰它?添加
if条件以检查mainpagelevel3$url是否以"mailto:"开头或遵循""^mailto:.*@.*"模式并在这种情况下根据需要返回输出如何? -
这似乎是一个非常好的选择,我只是在编写“if”语句时遇到了一些麻烦!感谢您的建议!
-
您可能想研究urltools package 中的函数
url_parse()。
标签: r html-parsing