首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >htmlParse中的html

htmlParse中的html
EN

Stack Overflow用户
提问于 2015-06-17 16:58:36
回答 1查看 3.9K关注 0票数 3

如下面的代码所示,htmlrvest包中使用来自XML包的htmlParse。。

代码语言:javascript
复制
html
function (x, ..., encoding = NULL) 
{
    parse(x, XML::htmlParse, ..., encoding = encoding)
}
<environment: namespace:rvest>

htmlParse
function (file, ignoreBlanks = TRUE, handlers = NULL, replaceEntities = FALSE, 
    asText = FALSE, trim = TRUE, validate = FALSE, getDTD = TRUE, 
    isURL = FALSE, asTree = FALSE, addAttributeNamespaces = FALSE, 
    useInternalNodes = TRUE, isSchema = FALSE, fullNamespaceInfo = FALSE, 
    encoding = character(), useDotNames = length(grep("^\\.", 
        names(handlers))) > 0, xinclude = TRUE, addFinalizer = TRUE, 
    error = htmlErrorHandler, isHTML = TRUE, options = integer(), 
    parentFirst = FALSE) 
.....

因此,对于以下网址:

代码语言:javascript
复制
 myurl<-"http://www.nepalstock.com.np/"
parse_XML<-htmlParse(myurl) #runs without error
parse_rvest<-html(myurl) # throws out the Internal Sever error
Error in parse.response(r, parser, encoding = encoding) : 
  server error: (500) Internal Server Error

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-17 18:18:30

重置基础httr::GET请求中的默认用户代理,然后它工作:

代码语言:javascript
复制
library(httr)
library(rvest)
parse_rvest <- html(myurl, add_headers("User-Agent" = "myagent"))

代码语言:javascript
复制
parse_rvest <- html(myurl, user_agent("myagent"))

注意,为了调试目的,可以将verbose()添加到html(...)

添加:

使用新的rvest / xml2 / curl组合,应该如下所示:

代码语言:javascript
复制
library(xml2)
library(rvest)
library(curl)
parse_rvest <- curl(myurl, handle = new_handle("useragent" = "myua")) %>%
               read_html()
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30897852

复制
相关文章

相似问题

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