如何使用R刮取多页搜索结果

时间:2016-07-05 13:44:59

标签: r web-scraping screen-scraping

我想抓一个列出南非所有资格的网站(http://allqs.saqa.org.za/search.php

当您第一次转到该链接时,您会注意到它是一个包含搜索条件的页面。我想刮掉所有结果,所以我没有在搜索条件中输入任何内容 - 只需单击“GO”,然后返回我想要搜索的搜索结果。结果显示20条记录,结果有16521页。在此阶段,URL仍然如上所述。

有可能刮掉这些结果吗?通过我一直在进行的在线搜索,我找到了在URL中定义页面结果搜索条件的解决方案。但是对于我想要抓取的网站,这不是选项

理想情况下,我想使用R进行抓取,但如果在R中不可能,我会接受其他建议

非常感谢 利雅

1 个答案:

答案 0 :(得分:0)

R有一个支持POST方法的curl包。以下代码可以帮助您入门:

library(curl)
h = new_handle()
handle_setopt(h, copypostfields = "cat=qual&GO=Go")
req = curl_fetch_memory("http://allqs.saqa.org.za/search.php", handle=h)
cat(rawToChar(req$content))

请注意,这只是在提交表单后吐出网页的内容。将数据解析为数据框留作练习。在R中键入“?? curl”以查看教程。