gpt4 book ai didi

r - 使用 R 提交到 Google 或 Wikipedia 搜索表单

转载 作者:行者123 更新时间:2023-12-02 02:11:15 26 4
gpt4 key购买 nike

我正在尝试使用 R 根据字符串值导航到特定的维基百科页面。由于我没有要查找的关键字列表的确切维基百科 URL(例如,“Prog rock”作为搜索词会转到以 Progressive_rock 结尾的 URL),因此我的想法是将关键字传递给 Google“手气不错”搜索,然后抓取生成的维基百科页面的 HTML。

在尝试这个过程中,我发现我在使用 R 提交任何表单时遇到了麻烦。任何人都可以发布一个可重现的示例,用于使用 R session 运行 Google 查询并返回首页的 HTML 或维基百科根据搜索词进行搜索?

我一直在使用 Hadley 优秀的 rvest 包来进行大部分网络抓取,但即使使用改编自 rvest 手册的示例,也无法使这方面发挥作用:

goog<-html_session("https://www.google.com")

search <- html_form(html("https://www.google.com"))[[1]]

search.mod<-set_values(search, q = "My little pony")

submit_form(goog, search.mod, submit='btnI')

返回结果:

 Error: length(url) == 1 is not TRUE

我也直接尝试了维基百科搜索,并获得了同样的运气:

url<-"http://en.wikipedia.org/wiki/Main_Page"

wiki<-html_session(url)

search.form<-html_form(wiki)[[1]]

form.mod<-set_values(search.form, search="Frank Zappa")

submit_form(wiki,form.mod,submit='go')

返回相同的错误。我怀疑我犯了某种极其简单的错误,但我不知道它是什么。

许多在线提交搜索表单的示例似乎都使用 httr、RCurl 和 RSelenium 包,但我还没有在 Google 或维基百科上找到有效的具体示例,并且许多示例似乎已经过时了谷歌改变了“手气不错”搜索的格式。我还按照类似问题( Sumbit queries on wikipedia through R )中的建议查看了 WikipediR 包,但它似乎没有搜索功能。

最佳答案

要在 Wikipedia 或 Google 上提交搜索,您不需要 html_form,因为它们都提供了在网址中传递查询的方法。例如,如果您在维基百科中查找“apple”,只需输入

http://en.wikipedia.org/wiki/Special:Search/apple

这将重定向到苹果页面,因为有一个具有此名称的页面。

http://en.wikipedia.org/wiki/Special:Search/Prog_rock

还会找到正确的页面,因为有自动重定向。

如果您正在寻找“Progressiv Rock”,它不会找到任何页面,但会显示一些建议,您可以尝试解析:

http://en.wikipedia.org/wiki/Special:Search/Progressiv_rock

关于r - 使用 R 提交到 Google 或 Wikipedia 搜索表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28534129/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com