php โค้ด *อ้างอิงจากโครงสร้างหน้าเว็บอเมซอน ในปัจจุบัน 27.10.55
อันนี้จะถึงข้อมุลสินค้าในหน้าค้นหา แสดงหน้าแรกน่ะครับ หน้าถัดไปลองเอา url มาใส่ดู
การทำงานของโปรแกรม ไม่มีไรมากครับ ดึง html จาก url ด้วย file_get_contents
จากนั้นเอามาแบ่งแยกส่วนข้อมูลด้วย explode แล้วเราก็เอาข้อมุลมาเรียงตามใจชอบ
โค้ดนี้เป้นโค้ดพื้นฐานง่ายๆครับ สามารถนำไปพัฒนาต่อไป โดยอาจะทำลิ้งไปยังหน้า detail อีกทีนึง ใช้ api ดึง ค่อยยิงไปหน้าอเมซอนอีกที
ทำให้เราประหยัด api และอาจจะทำ cache ไว้ ทำให้แสดงหน้าเว็บได้เร็วยิ่งขึ้น
<?php $tagid = "test-20"; $kw = "hdtv led 1080p"; $url = "http://www.amazon.com/s/ref=nb_sb_ss_i_2_4?url=search-alias%3Daps&field-keywords=".urlencode($kw).""; $content = file_get_contents($url); $exp1 = explode('<div id="atfResults" class="list results">',$content); $data1 = $exp1[1]; $exp2 = explode('<br clear="all">',$data1); $count = count($exp2); $total = $count-1; echo '<table border="1" width="100%">'; for($i=0;$i<$total;$i++){ $_title = explode('<h3 class="newaps">',$exp2[$i]); $_title = explode('</h3>',$_title[1]); $_link = explode('href="',$_title[0]); $_link = explode('">',$_link[1]); $link = trim(strip_tags($_link[0])); $_title = strip_tags($_title[0]); $_title = explode('by',$_title); $title = trim(strip_tags($_title[0])); $by = trim(strip_tags($_title[1])); $_asin = explode('dp/',$_link[0]); $_asin = explode('/ref',$_asin[1]); $asin = trim(strip_tags($_asin[0])); $thelink = "http:///www.amazon.com/gp/offer-listing/".$asin."/?tag=".$tagid; $_image = explode('src="',$exp2[$i]); $_image = explode('.jpg',$_image[1]); $image = trim(strip_tags($_image[0])); $_order = explode('sml">',$exp2[$i]); $_order = explode('</span>',$_order[1]); $order = trim(strip_tags($_order[0])); $_price = explode('<del class="grey">',$exp2[$i]); $_price = explode('</del>',$_price[1]); $price = trim(strip_tags($_price[0])); $_price2 = explode('<span class="bld lrg red">',$exp2[$i]); $_price2 = explode('</span>',$_price2[1]); $price2 = trim(strip_tags($_price2[0])); $_bld = explode('<span class="price bld">',$exp2[$i]); $_bld = explode('</span>',$_bld[1]); $bld = trim(strip_tags($_bld[0])); $_offers = explode('<span class="grey">',$exp2[$i]); $_offers = explode('</span>',$_offers[1]); $offers = trim(strip_tags($_offers[0])); $_stars = explode('class="asinReviewsSummary">',$exp2[$i]); $_stars = explode('</div>',$_stars[1]); $_stars = explode('<a alt="',$_stars[0]); $_stars = explode('out of 5 stars',$_stars[1]); $stars = trim(strip_tags($_stars[0])); $_counts = explode('<span class="rvwCnt">(',$exp2[$i]); $_counts = explode(')</span>',$_counts[1]); $counts = trim(strip_tags($_counts[0])); echo '<tr>'; echo '<td valign="top" alig="center" width="120">'; echo '<img src="'.$image.'.jpg" border="0"> '; echo '</td>'; echo '<td valign="top">'; echo 'Title : <a href="'.$thelink.'" target="_blank">'.$title.'</a><br />'; echo 'ASIN : '.$asin.'<br />'; echo 'Price : <strike>'.$price.'</strike> <b>'.$price2.'</b><br />'; echo 'Rating : '.$stars.' ('.$counts.')<br />'; if($order){ echo ''.$order.'<br />'; } if($bld){ echo ''.$bld.' '.$offers.'<br />'; } echo '</td>'; echo '</tr>'; } echo '</table>'; ?>