base::url 读取网页但 xml2::read_html 给出 404 错误

base::url reads webpage but xml2::read_html gives 404 error

我在使用 rvest 时遇到了一个非常奇怪的问题。这是示例之一:https://politics.raisethemoney.com/cchristiansen。此页面可在任何网络浏览器中正常打开,并且可以由 base::url 打开。

A connection with                                                              
description "https://politics.raisethemoney.com/cchristiansen"
class       "url-libcurl"                                     
mode        "r"                                               
text        "text"                                            
opened      "closed"                                          
can read    "yes"                                             
can write   "no"  

当使用xml2::read_html时,会报404错误。

Error in open.connection(x, "rb") : HTTP error 404.

在 Rstudio Cloud 和本地机器上测试 (Windows 10)。我很困惑。知道为什么会发生这种情况吗?

服务器正在请求中寻找特定的header,即

'Accept' : ''

需要提供此信息以便从服务器向请求提供 200。例如,这个 header 是 httr 中的默认设置,但我假设你没有使用你正在尝试的方法。

以下是我 运行 和 Python requests 的一些快速测试(有点类似于 rvest):