【发布时间】:2016-11-21 15:34:15
【问题描述】:
我正在尝试用rvest 抓取this website 的内容(不是链接的论文/摘要,只是编号、标题、作者等)。
默认情况下,页面仅显示 2016 年的论文,抓取 2016 年的数据“没问题”。我希望在将“2016”更改为“所有年份”后 URL 会发生变化,但它保持不变。所以我求助于html_form。在检查网页的“资源”时,我发现相关的输入名称是filteryear。
R 代码:
library(rvest)
rdc <- html_session("https://sfb649.wiwi.hu-berlin.de/fedc/discussionPapers_formular_content.php")
form <- html_form(rdc)
form <- set_values(form, filteryear = "all years")
#Error: Unknown field names: filteryear
显然,filteryear 不是表单的一部分。由于我的 HTML 知识有限,我很确定以下内容告诉我,该表单由三个输入组成:filterTypeName、filterName 和 filteryear。
来自资源的 HTML:
<form action='discussionPapers_formular_content.php' method='post'>
<select name='filterTypeName'>
<option value='AUTHORS'>Author</option>
<option value='PROJECT'>Project Code</option>
...
<option value='JEL'>JEL</option
</select> </td> # Is this </td> the problem?!
<td valign='baseline'>
<input type='text' size='35' name='filterName' >
</td>
<td valign='baseline'>
<select name='filteryear'>
<option value='2005'>2005</option>
...
<option value='2016'>2016</option>
<option value='all'>all years</option>
</select>
</td>
<td valign='baseline'>
<INPUT type='submit' value='Search' name='B1'></INPUT>
</td></tr>
</form>
为什么html_form 不能完全识别这个表单?而且,更重要的是,有没有办法解决这个问题?
【问题讨论】:
标签: html r web-scraping rvest