首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >网络抓取/爬行

网络抓取/爬行
EN

Stack Overflow用户
提问于 2015-09-06 01:14:39
回答 1查看 268关注 0票数 0

我在试着爬https://www.nyse.com/bell/calendar。由于某种原因,当我拉出html时,它返回到一个不同的html,当我使用查看该html时,可以找到这个html。我使用了以下功能:

代码语言:javascript
复制
SetDir = "~/NYSE/"

setwd(SetDir)

CreateDir = paste(SetDir, "RawData/", sep="")

if("RawData" %in% dir(SetDir)==FALSE){
  dir.create(CreateDir)
}



    url = paste("https://www.nyse.com/bell/calendar", sep="")
    urlname <- paste(CreateDir, ".html", sep="")
    err <- try(download.file(url,destfile = urlname, quiet=FALSE), silent=TRUE)
    if(class(err)=="try-error"){
      Sys.sleep(5)
      try(download.file(url,destfile = urlname, quiet=FALSE), silent=TRUE)
    }

在上面的命令之后,我得到了以下警告消息:

代码语言:javascript
复制
Warning message:
In download.file(url, destfile = urlname, method = "internal", mode = "w",  :
  downloaded length 18598 != reported length 200

我甚至使用包(如RCurl)尝试了非常简单的函数:

代码语言:javascript
复制
script <- readLines("https://www.nyse.com/bell/calendar")
script <- getURL("https://www.nyse.com/bell/calendar")

我没有得到一个错误,只是相同的HTML我得到了之前,这是不一样的时候,在网站上检查。由于某些原因,它似乎没有检索我正在寻找的html。当我尝试其他站点时,这些方法都有效。我有点不知所措,这是怎么回事,这个具体的网站是否受到保护?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2022-09-24 16:14:33

您可以考虑在R包RSelenium中使用Selenium:

代码语言:javascript
复制
library(RSelenium)
url <- "https://www.nyse.com/bell/calendar"
shell('docker run -d -p 4445:4444 selenium/standalone-firefox')
remDr <- remoteDriver(remoteServerAddr = "localhost", port = 4445L, browserName = "firefox")
remDr$open()
remDr$navigate(url)
html_Content <- remDr$getPageSource()[[1]]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32419114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档