【问题标题】:R - Sending search request on a websiteR - 在网站上发送搜索请求
【发布时间】:2023-08-19 05:48:01
【问题描述】:

我有一个小问题,涉及在网站上发布搜索请求并使用 R 包 rvest 和 httr 显示结果...我只想运行一个搜索名称“Acer campestre”,并且只勾选框“仅匹配整个单词”。这是我的代码:

library(httr)
library(rvest)
col = POST(url="http://www.catalogueoflife.org/col",
           encode="form",
           body=list(text="Acer campestre",
                     fossil="0",
                     match="1",
                     submit="Search"))
col_html = read_html(col)
col_table = html_table(col_html,fill=T)

我想我离答案不远了,但似乎我总是在使用这种使用 html 代码的命令时遇到问题...希望有人可以帮助我,提前谢谢!

【问题讨论】:

    标签: r web-scraping rvest rcurl httr


    【解决方案1】:

    好的,

    最后我自己解决了,问题出在三个方面:

    -不是“fill=T”而是“fill=F”

    -发布请求的输入很糟糕:不是“文本”而是“密钥”,而不是“提交”而是“搜索”...

    -最后但同样重要的是:默认 URL“http://www.catalogueoflife.org/col”不是要使用的。 "http://www.catalogueoflife.org/col/search/all" 是用于实际发布请求或与网页交互的正确选项...这里是代码:

    library(rvest)
    library(httr)
    col = POST(url="http://www.catalogueoflife.org/col/search/all",
               encode="form",
               body=list(key="Acer campestre",
                         fossil="0",
                         match="1",
                         search="Search"))
    col_html = read_html(col)
    col_table = html_table(col_html,fill=F)
    

    然后,将网页的内容放在一个漂亮的表格中!

    希望对某人有所帮助:)

    【讨论】:

      最近更新 更多