gpt4 book ai didi

r - 从 stats.nba.com 抓取数据,在 curl::curl_fetch_memory(url, handle = handle) 中获取错误

转载 作者:太空宇宙 更新时间:2023-11-03 13:49:06 24 4
gpt4 key购买 nike

我想从 stats.nba.com 抓取球队的高级统计数据。

我当前获取存储数据的 XHR 文件的代码是:

library(httr)
library(jsonlite)


nba <- GET('https://stats.nba.com/stats/leaguedashteamstats?Conference=&DateFrom=11%2F12%2F2019&DateTo=&Division=&GameScope=&GameSegment=&LastNGames=0&LeagueID=00&Location=&MeasureType=Advanced&Month=0&OpponentTeamID=0&Outcome=&PORound=0&PaceAdjust=N&PerMode=PerGame&Period=0&PlayerExperience=&PlayerPosition=&PlusMinus=N&Rank=N&Season=2019-20&SeasonSegment=&SeasonType=Regular+Season&ShotClockRange=&StarterBench=&TeamID=0&TwoWay=0&VsConference=&VsDivision=')

我在 Chrome 中通过以下步骤获取了 URL:检查 -> 网络 -> XHR

代码抛出这个错误:

Error in curl::curl_fetch_memory(url, handle = handle) : 
LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 60

我还在网站上使用自定义高级过滤器进行了尝试,这要么导致相同的错误,要么导致代码永远运行。我不太擅长网络抓取,所以如果有人能指出这里的问题,我将不胜感激。

最佳答案

我已经仔细研究过了。看起来这个网站竭尽全力防止抓取,并且不会给你来自该网址的 json,除非你向它提供由浏览器的 javascript 和他们自己的服务器之间来回生成的 cookie。他们还使用 New Relic 技术监控请求时间,因此如果您抓取多个页面,他们可能会阻止您的 IP。这并非不可能,但非常非常困难。

如果您迫切需要可以使用 NBA API 查找的数据这需要注册,但我们每天可以免费使用 1000 个请求。

另一种选择是使用 RSelenium 自动化浏览器以获取完全呈现页面的 html。

当然,如果你只想要这一页,你可以从你的 Chrome 检查器中复制 html,然后使用 rvest::read_html(readClipboard())

关于r - 从 stats.nba.com 抓取数据,在 curl::curl_fetch_memory(url, handle = handle) 中获取错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59688838/

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