2016-07-05 50 views
0

刮搜索结果的多个页面,我想凑一个网站,该网站列出了南非所有的资格(http://allqs.saqa.org.za/search.php如何,使用R

当你第一次去的链接,你会注意到它的网页与搜索条件。我想刮去所有结果,所以我不会在搜索条件中输入任何内容 - 只需单击“GO”,然后返回我想要搜索的搜索结果。结果显示20条记录,并有16521页的结果。在这个阶段,URL仍然如上所述。

可以刮这些结果吗?从我一直在做的在线搜索中,我找到了解决方案,可以在网址中定义页面结果搜索条件的位置。然而,对于我想这刮的网站是不是选项

理想情况下,我想用R做拼抢,但我接受其他的建议,如果它不是R中可能

非常感谢 Ria

+0

你有什么试过?你卡在哪里?在这一点上,这个问题太宽泛/一般。 – JasonAizkalns

+0

我查看了该网站,并且只显示了支持POST方法。我尝试将提交操作从POST更改为GET,这为我提供了一个定义了搜索条件的URL,但这只是将我带回了主要搜索页面。你将需要找到一个支持POST的抓取工具。 – Teajay

回答

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”以查看教程。