R 如何在搜索表单上查找html_节点?
我有一个名字、名字、姓氏和出生日期的列表,我需要在美国佐治亚州富尔顿县监狱网站上搜索,以确定某人是否入狱或获释 该网站是 该网站要求您输入姓氏和名字,然后会提供结果列表 我发现了一些stackoverflow帖子,它们给了我一些方向,但我仍在努力解决这个问题。我用这个作为例子。我正在使用SelectorGaget帮助找出CSS标记 这是我到目前为止的代码。现在我不知道该使用什么html_节点 我从form.unfilled得到的结果是{xml_missing},我知道这是不对的 我想如果我能计算出html_节点的值,我就可以继续使用set_值并提交表单R 如何在搜索表单上查找html_节点?,r,web-scraping,rvest,R,Web Scraping,Rvest,我有一个名字、名字、姓氏和出生日期的列表,我需要在美国佐治亚州富尔顿县监狱网站上搜索,以确定某人是否入狱或获释 该网站是 该网站要求您输入姓氏和名字,然后会提供结果列表 我发现了一些stackoverflow帖子,它们给了我一些方向,但我仍在努力解决这个问题。我用这个作为例子。我正在使用SelectorGaget帮助找出CSS标记 这是我到目前为止的代码。现在我不知道该使用什么html_节点 我从form.unfilled得到的结果是{xml_missing},我知道这是不对的 我想如果我能计算
谢谢。该网站严重依赖Javascript来呈现自己。打开在新浏览器实例中提供的链接时,您将被重定向到http://justice.fultoncountyga.gov/PAJailManager/default.aspx,您必须单击“监狱记录”链接。这将执行一点Javascript,将您发送到带有表单的页面
rvest无法执行任意Javascript。你可能得看看硒。Selenium基本上可以远程控制浏览器,例如Firefox或Chrome,它可以按预期执行Javascript。该网站严重依赖Javascript来呈现自身。打开在新浏览器实例中提供的链接时,您将被重定向到http://justice.fultoncountyga.gov/PAJailManager/default.aspx,您必须单击“监狱记录”链接。这将执行一点Javascript,将您发送到带有表单的页面
rvest无法执行任意Javascript。你可能得看看硒。Selenium基本上是远程控制一个浏览器,例如Firefox或Chrome,它按预期执行Javascript。它出现在网页打开的初始调用中http://justice.fultoncountyga.gov/PAJailManager/default.aspx. 会话启动后,您应该能够跳转到搜索页面:
library(rvest)
# Specify URL
fc.url <- "http://justice.fultoncountyga.gov/PAJailManager/JailingSearch.aspx?ID=400"
# start session
jail <- html_session("http://justice.fultoncountyga.gov/PAJailManager/default.aspx")
#jump to search page
jail2 <- jail %>% jump_to("http://justice.fultoncountyga.gov/PAJailManager/JailingSearch.aspx?ID=400")
#list the form's fields
html_form(jail2)[[1]]
# Grab initial form
form.unfilled <- jail2 %>% html_node("form")
注意:验证您的操作是否符合网站的服务条款。许多网站都有禁止刮擦的政策。它出现在网页打开的第一次呼叫中http://justice.fultoncountyga.gov/PAJailManager/default.aspx. 会话启动后,您应该能够跳转到搜索页面:
library(rvest)
# Specify URL
fc.url <- "http://justice.fultoncountyga.gov/PAJailManager/JailingSearch.aspx?ID=400"
# start session
jail <- html_session("http://justice.fultoncountyga.gov/PAJailManager/default.aspx")
#jump to search page
jail2 <- jail %>% jump_to("http://justice.fultoncountyga.gov/PAJailManager/JailingSearch.aspx?ID=400")
#list the form's fields
html_form(jail2)[[1]]
# Grab initial form
form.unfilled <- jail2 %>% html_node("form")
注意:验证您的操作是否符合网站的服务条款。许多网站都有禁止刮削的政策。多亏了Dave2e
下面是有效的代码。这个问题已经回答了,但我将发布另一个问题,因为我没有得到一个数据表
注意:我在这个网站上找不到我正在查询的任何服务条款
多亏了戴维
下面是有效的代码。这个问题已经回答了,但我将发布另一个问题,因为我没有得到一个数据表
注意:我在这个网站上找不到我正在查询的任何服务条款
谢谢这让我进入了下一步。我将发布另一个关于“疾驰”的问题。一旦我提交了带有某些名称值的表单,我就会发现在处理您的请求消息时出现错误。@JohnMoses,submit\u表单可能不是正确的方法。人们可能必须尝试POST方法。这超出了我的技能水平,尝试用你的工作代码发布一个新问题,看看其他人是否有更多经验。谢谢。这让我进入了下一步。我将发布另一个关于“疾驰”的问题。一旦我提交了带有某些名称值的表单,我就会发现在处理您的请求消息时出现错误。@JohnMoses,submit\u表单可能不是正确的方法。人们可能必须尝试POST方法。这超出了我的技能水平,尝试用你的工作代码发布一个新问题,看看其他人是否有更多的经验。
library(rvest)
# start session
jail <- html_session("http://justice.fultoncountyga.gov/PAJailManager/default.aspx")
#jump to search page
jail2 <- jail %>% jump_to("http://justice.fultoncountyga.gov/PAJailManager/JailingSearch.aspx?ID=400")
#list the form's fields
html_form(jail2)[[1]]
# Grab initial form
form.unfilled <- jail2 %>% html_node("form") %>% html_form()
form.unfilled
#name values
lname <- "DOE"
fname <- "JOHN"
# Fille the form with name values
form.filled <- form.unfilled %>%
set_values("LastName" = lname,
"FirstName" = fname)
#Submit form
r <- submit_form(jail2, form.filled,
submit = "SearchSubmit")
#grab tables from submitted form
table <- r %>% html_nodes("table")
#grab a table with some data
table[[5]] %>% html_table()
# resulting text in this table:
# " An error occurred while processing your request.Please contact your system administrator."