【发布时间】:2016-12-05 20:07:35
【问题描述】:
我正在尝试从 pems.dot.ca.gov 下载一些交通数据,关注 this topic。
rm(list=ls())
library(rvest)
library(xml2)
library(httr)
url <- "http://pems.dot.ca.gov/?report_form=1&dnode=tmgs&content=tmg_volumes&tab=tmg_vol_ts&export=&tmg_station_id=74250&s_time_id=1369094400&s_time_id_f=05%2F21%2F2013&e_time_id=1371772740&e_time_id_f=06%2F20%2F2013&tod=all&tod_from=0&tod_to=0&dow_5=on&dow_6=on&tmg_sub_id=all&q=obs_flow&gn=hour&html.x=34&html.y=8"
pgsession <- html_session(url)
pgform <-html_form(pgsession)[[1]]
filled_form <- set_values(pgform,
'username' = 'omitted',
'password' = 'omitted')
resp = submit_form(pgsession, filled_form)
resp_2 = resp$response
cont = resp_2$content
我检查了这些项目的class(),发现resp是'session',resp_2是'response',cont是'raw'。我的问题是:如何正确提取 html 内容,以便我可以继续使用 XPath 从该页面中挑选出我想要的实际数据?我的直觉是我应该解析作为响应的 resp_2 ,但我就是无法让它工作。非常感谢您的帮助!
【问题讨论】:
-
你看过选择器小工具吗?我发现它对于查找我想要提取的网页的特定部分很有用。 selectorgadget.com 。它适用于
html_nodes和html_text内的rvest -
我刚刚查看了这个小工具,它看起来很酷。但我的问题不是关于如何从 html 中选择内容,而是关于如何将响应或原始内容转换为 html。无论如何感谢您的回答!
-
网站似乎需要用户名和密码才能通过打开屏幕。您上面的代码使用“省略”,这不是一个有效的组合。如果您可以发布您感兴趣的实际页面的示例,那将更有帮助。
-
@Dave2e 我在我的代码中使用了我的登录凭据。我只是没有在stackoverflow中显示它们:) 抱歉让代码不可重现。我希望有人能给我关于如何处理响应或原始的提示。谢谢!
标签: html r web-scraping html-parsing rvest