Php 卖不到价钱
我正试图从一家网上商店买到价格 这里我使用的是这个代码Php 卖不到价钱,php,domdocument,server-load,server-response,Php,Domdocument,Server Load,Server Response,我正试图从一家网上商店买到价格 这里我使用的是这个代码 <?php function getPrice($site){ $html = file_get_contents($site); $dom = new DOMDocument(); $dom->loadHTML($html); $contents = $dom->document.getElementsByTagName("span"); $price = "";
<?php
function getPrice($site){
$html = file_get_contents($site);
$dom = new DOMDocument();
$dom->loadHTML($html);
$contents = $dom->document.getElementsByTagName("span");
$price = "";
for($i = 0; $i < $contents->length; $i++){
$content= $contents->item($i);
if($content->getAttribute('class') == "fk-font-verybig pprice vmiddle fk-bold"){
$price = $content->getAttribute('value');
}
}
echo $price;
}
$website = "http://www.flipkart.com/sogo-ss-5365-750-w-pop-up-toaster/p/itmdz3hgfjzgfp4v?pid=PUTDYWT2UHPCDCG8&offer=DOTDOnPopUpToaster_Sep2.&icmpid=hp_dotd_3_DOTDOnPopUpToaster_Sep2.";
getPrice($website);
?>
因为商店不断地改变产品的价格,所以可以这样定价吗。
有没有其他替代方法
此脚本是否会影响我的服务器性能,因为每当用户访问我网站上的产品页面时,它都会从5家不同的商店获取到comapare价格
$contents = $dom->document.getElementsByTagName("span");
您的$dom->文档失败,因为DOMDocument类没有名为“document”的属性
Notice: Undefined property: DOMDocument::$document in E:\Local server\htdocs\store\scripts\getprice.php on line 6
所以这可能有用
$contents = $dom->getElementsByTagName("span");
上述措施应该有效
我建议迭代$contents而不是echo
即使是打印也可以帮助您查看$contents中节点的结构。如果您拥有从其网站获取价格的官方法律许可,您应该与他们联系,以获取xml或csv格式的价格提要。是的,它会影响页面加载。你应该缓存价格(memcache、redis、sql)。你可以删除dot,然后再试一次dotdonPoputMaster\u Sep2。&icmpid=hp\u dotd\u 3\u dotdonPoputMaster\u Sep2。?考虑在MySQL中存储价格,以减少再次从服务器获取数据的时间。尝试删除dotdonPoputMaster\u Sep2。&icmpid=hp\u dotd\u 3\u dotdonPoputMaster\u Sep2。?仍然出现相同的错误您只需要禁用警告,因为无效的html很常见。看到这个答案有帮助,但现在我只收到警告,没有输出警告是什么?警告:DOMDocument::loadHTML():意外结束标记:span in Entity,第6行E:\Local server\htdocs\store\scripts\getprice.php中的第261行警告:DOMDocument::loadHTML():htmlParseEntityRef:no name in Entity,第6行E:\Local server\htdocs\store\scripts\getprice.php中的第293行警告:DOMDocument::loadHTML():HTMLPARSENTYREF:实体中没有名称,第6行E:\Local server\htdocs\store\scripts\getprice.php中的第293行。。。。警告:DOMDocument::loadHTML():HTMLParserEntityRef:应为“;”在实体中,E:\Local server\htdocs\store\scripts\getprice.php在线中的第6125行6@user3811305按照我之前的建议关闭警告我的意思是我的脚本没有返回任何内容。
$contents = $dom->getElementsByTagName("span");