Končno sem spacal skupaj skripto, pri čemer mi je bil v veliko pomoč namig od @mtance. Skripta iz MySql tabele prebere Amazon ASIN kode, z Amazon strain podatke o ceni, ocenah in številu ocen ter dobljene podatke zapiše v isto tabelo. Prilagam kodo:
<?php
$con = mysql_connect("localhost:3306","user","pass");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("db", $con);
$query="SELECT asin from amazon where asin<>''";
$result2 = mysql_query($query);
while($row = mysql_fetch_array($result2))
{
$asin=$row['asin'];
if (function_exists('curl_init')) {
// initialize a new curl resource
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.amazon.com/dp/'.$asin);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0');
$source = curl_exec($ch);
curl_close($ch);
} else {
echo "Error, you don't have support for cURL";
}
preg_match("/title=\"(.*?) out of 5 stars/",$source, $result);
$stars=$result[1];
preg_match("/priceLarge\">(.*?)</",$source, $result);
$price=trim($result[1],"$");
$price=trim($result[1],"$");
preg_match("/1\" \>See all (.*?) customer reviews/",$source, $result);
$reviews=$result[1];
echo 'ASIN: '.$asin.'<br>';
echo 'Rating on Amazon.com: '.$stars.' out of 5 stars<br>';
echo 'Price: '.$price.'<br>';
echo 'Customer reviews: '.$reviews.'<br><br>';
$query="UPDATE amazon set stars=".$stars.",price2='".$price."',
reviews='See all ".$reviews." reviews' where asin='".$asin."'";
mysql_query($query);
}
$query="UPDATE amazon set price=price2 where asin<>'' and price2 > 0";
mysql_query($query);
mysql_close($con);
?>
Vem da je to PHP skropucalo ampak moj materni jezik je SQL. PHP skripta tako deluje le za izdelke ki imajo točno določeno ceno, ne dela pa za izdelke kot so na primer tile:
Več modelov različnih barv...
http://www.amazon.com/dp/B0047DVWLW
Variabilna cena (Price from)
http://www.amazon.com/dp/B004NNVHUC
Cena vidna le v košarici (See price in cart)
http://www.amazon.com/dp/B00422TXZA
Bi znal kdo pomagat, lahko tudi proti plačilu.