在 read_html() 中传递 user_agent() 参数

Pass user_agent() parameter in read_html()

我不明白如何将用户代理传递给 read_html()。

推荐如下代码:

library(httr)
library(rvest)
parse_rvest <- html(myurl, user_agent("myagent"))

此外,我了解到 html() 现在已被 read_html() 取代。但是,下面的代码:

parse_rvest <- read_html("http://testing-ground.scraping.pro/", 
                      user_agent("Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:73.0) Gecko/20100101 Firefox/73.0"))

returns一个错误:

Error in doc_parse_raw(x, encoding = encoding, base_url = base_url, as_html = as_html,  : 
  Expecting a single string value: [type=list; extent=7].

你快到了。你需要做 user_agent = "user agent",而不是 user_agent("user-agent")

这里有一个 reprex 来演示:

library(httr)
library(rvest)
#> Loading required package: xml2

parse_rvest <- read_html("http://testing-ground.scraping.pro/", 
                      user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:73.0) Gecko/20100101 Firefox/73.0")
parse_rvest
#> {html_document}
#> <html class="no-js">
#> [1] <head>\n<meta http-equiv="Content-Type" content="text/html; charset=UTF-8 ...
#> [2] <body>\n\t\t<script type="text/javascript">\n\t\t\n\t\t  var _gaq = _gaq  ...

reprex package (v0.3.0)

于 2020 年 3 月 2 日创建