使用R填写在线搜索表单并抓取结果数据

时间:2018-08-15 12:12:52

标签: r web-scraping

这是我第一次尝试进行网页抓取。我正在尝试从https://tvnews.vanderbilt.edu/search抓取数据。我希望能够

  1. 直接R搜索带有特定搜索选项的特定短语(例如尼克松税),例如使用所有网络。

  2. 删除所有产生的项目编号,例如,如果您对短语中的尼克松税进行短语搜索,则第一个项目编号为#1115273,包括您需要单击“加载更多结果”按钮才能查看的项目编号。

最终,我希望有一个数据框,其中包含网站返回的所有项目号,而无论您包括或忽略这些选项。

到目前为止,我已经尝试如下使用rvest软件包;

VDTA_session <- html_session("https://tvnews.vanderbilt.edu/search")
VDTA_search <- "https://tvnews.vanderbilt.edu/search"
VDTA_Nixon_form <- VDTA_session %>% 
 html_form() %>% 
 .[[1]] %>% 
 set_values('search[query]' = "Nixon tax",
            'search[from_date]' = "1968-08-05",
            'search[to_date]' = "2006-12-31",
            'search[reporter]' = '',
            'search[network]' = "1",
            'search[type]' = "exact",
            'search[type]' = "exact", 
            'search[sort_by]' = "relevance",
            'search[sort_by]' = "relevance",
            'search[sort_by]' = "relevance",
            'search[sort_by]' = "relevance",
            'search[include_commercials]' = "0",
            'search[include_news]'= "1",
            'search[include_intros]' = "0",
            'search[include_good_night]' = "0",
            'search[include_specials]' = "0",
            'search[include_evening_news]'= "1")


VDTA_Nixon_Result <- submit_form(VDTA_session, VDTA_Nixon_form)

read_html(VDTA_Nixon_Result) %>%
html_nodes(".result-id em") %>%
html_text() %>%
unname() %>%
as.character()

我遇到两个问题。

  1. 我不知道要为commit_form()函数的commit参数输入什么。我已经尝试过{SUB3}和https://tvnews.vanderbilt.edu/search上的Submit按钮的CSS代码。似乎都不起作用。

  2. 尽管代码确实可以在没有输入commit参数的情况下正常工作,但我似乎最终得到了完全相同的搜索页面。我没有收到结果

我将感谢任何帮助我指出我的代码错误的地方。我也知道R可能不是执行此任务的最佳工具,但是我现在可以使用它。

0 个答案:

没有答案
相关问题