请求超时,cURL 不会

骑手994

我正在尝试使用 python requests 包从 NBA STATS api 中逐个拉取比赛。我一直遇到超时错误,所以我在 cURL 中尝试了它。

这是我尝试获取的单个游戏请求的网址:

http://stats.nba.com/stats/playbyplayv2?EndPeriod=10&GameID=0021500492&StartPeriod=1

你可以去这个链接,检查一下,那端的一切都有效。

我尝试仅对该链接执行 cURL 请求,但它超时了。最终,我将请求标头作为 cURL 参数一一插入,直到它起作用为止。

curl -X GET -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" -H "User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:53.0) Gecko/20100101 Firefox/53.0" -H "Accept-Language: en-US,en;q=0.5" -H "Accept-Encoding: gzip, deflate" "http://stats.nba.com/stats/playbyplayv2?EndPeriod=10&GameID=0021500492&StartPeriod=1"

这是我在请求中的查询:

pars = {'Accept-Encoding': 'gzip, deflate'\ , 'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:53.0) Gecko/20100101 Firefox/53.0'\ , 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'\ , 'Accept-Language':'en-US,en;q=0.5'} response = requests.get('http://stats.nba.com/stats/playbyplayv2?EndPeriod=10&GameID=0021500492&StartPeriod=1'\ , params=pars)

我要么需要通过请求让它在 python 中工作,或者想办法在 cURL 中做到这一点,这样我就可以 (a) 根据来自文件/文件名的文本在循环中填充 GameID 部分和 ( b) 将其作为 json 保存在正确的目录(非工作目录)中。

有任何想法吗?有基于 urllib 的解决方案吗?

ftg_air

您将标头信息作为参数传递。您需要通过标头传递它。

import requests

headers = {'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:53.0) 
Gecko/20100101 Firefox/53.0'}

params = {
    'EndPeriod': 10,
    'GameID': '0021500492',
    'StartPeriod': 1
}
r = requests.get("http://stats.nba.com/stats/playbyplayv2", params=params, 
headers=headers)
print(r.json())

请求中的 params 用于将参数信息传递给 API,以便 API 处理您的请求。而标头用于验证或解释您的请求。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

执行HEAD请求时curl不会返回

来自分类Dev

PHP Curl不会发送POST请求

来自分类Dev

PHP Curl不会发送POST请求

来自分类Dev

JMeter中的JMS点对点请求超时不会导致错误

来自分类Dev

PHP cURL请求占用整个超时

来自分类Dev

bash curl发布请求设置超时

来自分类Dev

CURL不会从https加载数据

来自分类Dev

当通过命令行使用curl时,HAproxy不会将请求从http转发到https

来自分类Dev

通过VPN(从shell)运行curl或wget请求,而不会影响系统的主连接

来自分类Dev

通过VPN(从shell)运行curl或wget请求,而不会影响系统的主连接

来自分类Dev

WordPress不会处理AJAX请求

来自分类Dev

用于将原始帖子数据保存在请求对象中的中间件不会“继续”并导致超时

来自分类Dev

Python Scrapy不会重试超时连接

来自分类Dev

JPA悲观锁尝试永远不会超时

来自分类Dev

蚂蚁执行超时不会终止任务

来自分类Dev

RQ超时不会终止多线程作业

来自分类Dev

Python多处理获取不会超时

来自分类Dev

超时而不会杀死bash中的进程

来自分类Dev

ExecutorService.awaitTermination()永远不会超时

来自分类Dev

可排队的作业不会因 retryUntil() 而超时

来自分类Dev

ShinyManager 身份验证屏幕不会超时

来自分类Dev

安装了curl但libcurl不会更新

来自分类Dev

Curl 不会将错误写入文件

来自分类Dev

模拟者不会模拟请求会话

来自分类Dev

Laravel hasOne不会触发任何SQL请求

来自分类Dev

dataLayer.push()不会触发HTTP请求

来自分类Dev

Python-API请求不会刷新

来自分类Dev

猫鼬POST请求将不会执行

来自分类Dev

Net Core MemoryCache不会按请求重置