我试图从Steam Market商品中检索价格历史记录,并且我发现这是我需要的以及我将用作获取价格历史记录的基础:
在浏览器中,它可以完美地生成具有价格历史记录的JSON,但在PHP中它会返回:
Warning: file_get_contents(http://steamcommunity.com/market/pricehistory/?country=PT¤cy=3&appid=730&market_hash_name=Falchion%20Case): failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request in E:\...\test.php on line 3
已经尝试使用curls
,但到目前为止似乎没有任何效果。
目前的代码是:
<?php
echo file_get_contents("http://steamcommunity.com/market/pricehistory/?country=PT¤cy=3&appid=730&market_hash_name=Falchion%20Case");
?>
答案 0 :(得分:0)
正如前面提到的here,最好尝试curl()
来获取更准确的错误消息,从而获得更好的答案。
目前还有一件事你应该知道 - Steam可能已经采取了一些措施来对付使用此网址获取商品价格的人。您的400 Bad Request
可能(并且很可能是)因不发送页面所需的所有信息而被诱导。
例如 - 在你开始为自己实现时,页面可能不需要任何POST / GET参数,但是由于链接的知识变得太普遍,Steam决定添加另一个参数来过滤掉第三方产生高负荷。
可能的方法是深入挖掘这个网址的起源(例如谁和如何找到它),重现第一次采取的步骤,并找出自那时以来发生了什么变化。
我最好的猜测是有人嗅到了(Wireshark,Fiddler等)周围的东西,在撤回物品价格历史记录时发送的应用程序是什么,以及那个人找到链接的方式。你也可以尝试一下。