我一直在尝试从ASX.com.au网站上获取数据的当前价值。也就是说,我试图抓住ASX的当前价值。这可以在这里找到。
http://www.asx.com.au/asx/markets/equityPrices.do?by=asxCodes&asxCodes=asx
这是左起第二个td,在写这个时它位于30.410。
我可以玩一些代码并且无法让它工作。
以下是我一直在玩的示例代码,如果有人能帮助我实现这一点,我将不胜感激!
<?php
$data = file_get_contents('http://www.asx.com.au/asx/markets/equityPrices.do?by=asxCodes&asxCodes=asx');
$asx = explode('<th class="row" scope="row">ASX: </th>', $data);
$asx = substr($asx[1], 4, strpos($asx[1], '</td>') - 4);
?><div class="asxvalue"><?php echo $asx . "<br />\n";?></div>
修改
更新代码
<?php
$data = file_get_contents('http://www.asx.com.au/asx/research/companyInfo.do?by=asxCode&asxCode=DTL');
preg_match('/<td class="last">([^<]*?)</td>/i',$data,$matches);
$valueYouWant = $matches[1];
?><div class="data"><?php echo $valueYouWant ?></div>
答案 0 :(得分:1)
每个人都会理所当然地告诉你,你不能用正则表达式解析html并且应该使用html解析器(比如simple_dom处的这个)但是对于你的具体问题,你可以这样做:
preg_match('/<td class="last">([^<]*?)</td>/i',$data,$matches);
$valueYouWant = $matches[1];
要在另一页上找到日期和最后的值,您可以使用以下内容: 我实际上会建议在将来使用Simple_Dom来做这样的事情,但是在你对它感到满意之前,这将暂时起作用:
$data = file_get_contents('http://www.asx.com.au/asx/research/companyInfo.do?by=asxCode&asxCode=DTL');
preg_match('/id="closing-prices".*?<strong>(.*?)<\/strong>.*?<td class="last">(.*?)<\/td>/s',$data,$matches);
$date = $matches[1];
$lastValue = $matches[2];
我测试了这个并且它有效。为了使其更加强大,我建议使用其他工具,但这应该让你开始。祝你好运!
答案 1 :(得分:0)
感谢您的支持 - 我能够在Wordpress PHP代码小部件中使用该代码,它可以为ASX股票价格提供优惠:
<?php
$data = file_get_contents('http://www.asx.com.au/asx/research/companyInfo.do?by=asxCode&asxCode=asx');
preg_match('/id="closing-prices".*?<strong>(.*?)<\/strong>.*?<td class="last">(.*?)<\/td>/s',$data,$matches);
$date = $matches[1];
$lastValue = $matches[2];
?><div class="data">$<?php echo $lastValue ?></div>
以为有人可能会发现以上解决方案都放在一起以防它有用。
非常感谢回答这个问题的hackartist:)