如何将字符对象转换为HTML对象?R语言网页解析技术求助
解决方案:将字符/响应对象转换为可操作的HTML对象
嘿,我来帮你搞定这个转换问题!你现在需要把POST请求返回的结果转换成能让rvest包的HTML专用函数(比如html_nodes)识别的对象,其实分两种场景处理就很清晰:
场景1:page是httr的响应对象(POST默认返回类型)
当你调用httr::POST()后,默认返回的是一个response类的对象,这时候需要先提取出其中的HTML内容,再转成HTML文档对象:
library(httr) library(rvest) url <- "www.somewebsite.com" page <- POST(url = url, encode = "raw") # 核心转换步骤 html_page <- page %>% # 提取HTML文本内容,encoding根据目标网站实际编码调整(比如GBK) content(type = "text/html", encoding = "UTF-8") %>% # 转为rvest可识别的HTML文档对象 read_html() # 现在就能正常使用HTML函数啦 offer_title <- html_page %>% html_nodes(".offer-item-title") %>% html_text()
小贴士:如果遇到乱码,一定要检查网站的实际编码,把encoding参数改成对应的值(可以通过浏览器查看网站编码)。
场景2:page已经是字符对象
如果你的page已经是纯HTML字符串(比如手动把响应内容转成了字符),那步骤更简单,直接用read_html()包裹即可:
library(rvest) # 假设page已经是HTML字符对象 html_page <- read_html(page) # 后续操作和上面一致 offer_title <- html_page %>% html_nodes(".offer-item-title") %>% html_text()
如果不确定自己的page是什么类型,只需要在控制台输入class(page)就能查看,然后对应上面的方法处理就行~
内容的提问来源于stack exchange,提问作者M_D
相关产品推荐
相关产品推荐

