如何解决从 R 读取雅虎财经时出现的 HTTP 错误 503?

问题描述 投票:0回答:1

以下代码

rvest::read_html("https://finance.yahoo.com/quote/VWIUX")

生成

open.connection(x, "rb") 中的错误:HTTP 错误 503。

我知道该网址没问题,因为将网址“https://finance.yahoo.com/quote/VWIUX”粘贴到搜索栏中即可。我怎样才能使代码工作?谢谢。

r screen-scraping rvest
1个回答
0
投票

大多数网站都会阻止自动化(这很可能违反他们的服务条款),在这种情况下,他们似乎采用了 User-Agent 白名单:

## Tee pipe only for demonstration purposes
`%T>%` <- magrittr::`%T>%`

## We're Firefox now
UA <- httr::user_agent(
  "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:124.0) Gecko/20100101 Firefox/124.0"
)

html <- httr::GET("https://finance.yahoo.com/quote/VWIUX", UA) %T>%
   print() |>
   rvest::read_html()

#> Response [https://finance.yahoo.com/quote/VWIUX]
#>   Status: 200
#>   Content-Type: text/html; charset=utf-8
#>   Size: 1.93 MB
#> <!doctype html>
#>  ...
© www.soinside.com 2019 - 2024. All rights reserved.