我是AJAX和PHP的新手。我正在努力获取"总共"此页面上的值 http://csgobackpack.net/?nick=xreptar2 通过PHP HTML Dom Parser加载其html并从其容器中获取值。
但是,我遇到了两个问题。
我该如何解决这个问题?我正在使用此解析器:http://simplehtmldom.sourceforge.net/
我的代码:
<?php
include_once('simple_html_dom.php');
$html = file_get_html("http://csgobackpack.net/?nick=xreptar2");
echo $html->plaintext;
echo ________________;
foreach($html->find('p') as $element) {
echo $element->plaintext;
}
?>
在线php:http://watchgameofthron.es/ajax/stackoverflow1.php
上面的在线预览显示没有HTML被解析。因此,我编辑了代码,使其从具有类似功能的其他网页进行解析。
<?php
include_once('simple_html_dom.php');
$html = file_get_html("http://steam.tools/itemvalue/#/xreptar2-730");
echo $html->plaintext;
echo ________________;
foreach($html->find('p') as $element) {
echo $element->plaintext;
}
?>
答案 0 :(得分:0)
在快速查看解析器文档后,我非常确定它只加载了初始DOM元素,并且不会运行任何脚本。
如果你想获得背包的价值,你应该使用网站API:
http://csgobackpack.net/api/GetInventoryValue/?id=xreptar2&ref=1
它是一个简单的GET请求,然后返回一个简单的JSON字符串,您可以通过json_decode
将其转换为对象。
您不需要使用任何精美的外部模块来执行此操作。
应该这么简单:
$profileID = "xreptar2";
$connection = curl_init();
curl_setopt_array($connection, [
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_CONNECTTIMEOUT => 20,
CURLOPT_TIMEOUT => 60,
CURLOPT_URL => "http://csgobackpack.net/api/GetInventoryValue/?id={$profileID}&ref=1",
CURLOPT_FAILONERROR => true
]);
$jsonString = curl_exec($connection);
if ( $jsonString !== false )
{
$data = json_decode($jsonString);
}
然后您可以使用根据API的$data
格式如下:
{&#34;成功&#34;:真,&#34;值&#34;:&#34; 16965.24&#34;&#34;项目&#34;:&#34; 734&#34;,& #34;货币&#34;:&#34; USD&#34;}
我希望它有所帮助