Я пытаюсь получить цену в интернет-магазине.Не удалось получить цену
Здесь я использую этот код ..
<?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);
?>
мой обратный сценарий ошибки
Предупреждение: DOMDocument :: loadHTML(): Неожиданный конечный тег: пролет в Entity, строка: 261 в E: \ Local \ сервер HTDOCS \ магазин \ сценарии \ getprice.php по строке 5
Warning: DOMDocument::loadHTML(): htmlParseEntityRef: no name in Entity, line: 293 in E:\Local server\htdocs\store\scripts\getprice.php on line 5
...................................................................
Warning: DOMDocument::loadHTML(): htmlParseEntityRef: expecting ';' in Entity, line: 6160 in E:\Local server\htdocs\store\scripts\getprice.php on line 5
Notice: Undefined property: DOMDocument::$document in E:\Local server\htdocs\store\scripts\getprice.php on line 6
Fatal error: Call to undefined function getElementsByTagName() in E:\Local server\htdocs\store\scripts\getprice.php on line 6
это нормально, чтобы принести цену, как это, потому что в магазине постоянно менять цену своего продукта. Есть ли другой альтернативный способ сделать это?
Будет ли этот скрипт влиять на производительность моего сервера, так как когда-либо пользователь посетит страницу продукта на моем веб-сайте, он будет получать цены из 5 разных магазинов для сравнения цен.
Если у вас есть официальное юридическое разрешение на получение цены со своего сайта, вы должны связаться с ними, чтобы получить ценовой канал в формате xml или csv. И да, это влияет на загрузку страницы. Вы должны кэшировать цены (memcache, redis, sql). – DanFromGermany
вы можете просто удалить точку и попробовать один раз DOTDOnPopUpToaster_Sep2. & Icmpid = hp_dotd_3_DOTDOnPopUpToaster_Sep2.? –
Мышление, чтобы хранить цены в MySQL, чтобы сократить время от получения снова формы сервера – user3811305