从蒸汽中检索物料价格历史记录

时间:2015-07-18 21:24:57

标签: php steam-web-api

我试图从Steam Market商品中检索价格历史记录,并且我发现这是我需要的以及我将用作获取价格历史记录的基础:

http://steamcommunity.com/market/pricehistory/?country=PT&currency=3&appid=730&market_hash_name=Falchion%20Case

在浏览器中,它可以完美地生成具有价格历史记录的JSON,但在PHP中它会返回:

Warning: file_get_contents(http://steamcommunity.com/market/pricehistory/?country=PT&currency=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&currency=3&appid=730&market_hash_name=Falchion%20Case");

?>

1 个答案:

答案 0 :(得分:0)

正如前面提到的here,最好尝试curl()来获取更准确的错误消息,从而获得更好的答案。

目前还有一件事你应该知道 - Steam可能已经采取了一些措施来对付使用此网址获取商品价格的人。您的400 Bad Request可能(并且很可能是)因不发送页面所需的所有信息而被诱导。

例如 - 在你开始为自己实现时,页面可能不需要任何POST / GET参数,但是由于链接的知识变得太普遍,Steam决定添加另一个参数来过滤掉第三方产生高负荷。

可能的方法是深入挖掘这个网址的起源(例如谁和如何找到它),重现第一次采取的步骤,并找出自那时以来发生了什么变化。

我最好的猜测是有人嗅到了(Wireshark,Fiddler等)周围的东西,在撤回物品价格历史记录时发送的应用程序是什么,以及那个人找到链接的方式。你也可以尝试一下。