Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 提高嵌套sappy效率_R_Performance_Algorithm - Fatal编程技术网

R 提高嵌套sappy效率

R 提高嵌套sappy效率,r,performance,algorithm,R,Performance,Algorithm,我想知道是否有更有效的方法来实现我的目标。我现在正在写一个蜘蛛算法来每天早上获取新闻报道,我想过滤首页的初始链接来忽略我不关心的东西 您可以使用以下代码生成可复制的示例: library(RCurl) library(XML) opts = list( proxy = "***.***.***.***", #insert your proxy proxyusername = "domain\\username", proxypassword = "password", proxy

我想知道是否有更有效的方法来实现我的目标。我现在正在写一个蜘蛛算法来每天早上获取新闻报道,我想过滤首页的初始链接来忽略我不关心的东西

您可以使用以下代码生成可复制的示例:

library(RCurl)
library(XML)
opts = list(
  proxy = "***.***.***.***", #insert your proxy
  proxyusername = "domain\\username",
  proxypassword = "password",
  proxyport = ****) #insert your port number
links <- 'http://www.cnn.com'
xpaths <- c('//ul[@id="us-menu"]//a', '//div[@id="cnn_maint1lftf"]//a', '//div[@id="cnn_maintt2bul"]//a', '//div[@id="cnn_maintoplive"]//a')
response <- getURL('www.cnn.com', .opts=opts)
doc <- htmlParse(response)
for (xpath in xpaths) {
  li <- getNodeSet(doc, xpath)
  links <- c(links, sapply(li, xmlGetAttr, 'href'))
}
links <- links[!duplicated(links)]
links <- links[-1]
库(RCurl)
库(XML)
opts=列表(
proxy=“*****.**.**”,#插入您的代理
proxyusername=“域\\用户名”,
proxypassword=“password”,
proxyport=**)#插入您的端口号

links在这种情况下可以使用正则表达式。重要的是,你的坏单词列表中没有任何“特殊”正则表达式字符,如句点或其他标点符号。但是如果是这样的话,你可以把它们粘贴在一起,在一个grep中完成所有的事情。我们只是通过将所有单词与“or”操作符粘贴在一起来创建正则表达式

bad.words <- c('video', 'travel', 'living', 'health', 
    'ireport', 'bleacher', 'showbiz', 'mcafee')

re <- paste0("\\b(",paste(bad.words, collapse="|"),")\\b")

links <- links[ !grepl(re, links) ]

bad.words你的例子不太容易复制。对象
opts
未在
getURL()中找到
Ah,谢谢@RichardScriven。我对问题进行了编辑以纠正这一点。这正是我所寻找的解决方案类型。谢谢
bad.words <- c('video', 'travel', 'living', 'health', 
    'ireport', 'bleacher', 'showbiz', 'mcafee')

re <- paste0("\\b(",paste(bad.words, collapse="|"),")\\b")

links <- links[ !grepl(re, links) ]