PHP抓取淘寶商品的用戶(hù)曬單評(píng)論+圖片+搜索商品列表實(shí)例
說(shuō)起來(lái)做這個(gè)功能還真是一時(shí)好奇。前段時(shí)間在做一個(gè)淘客網(wǎng)站的時(shí)候,想到是否能抓取到淘寶商品的買(mǎi)家秀呢?經(jīng)過(guò)一番折騰發(fā)現(xiàn),淘寶商品用戶(hù)評(píng)價(jià)信息是通過(guò)Ajax來(lái)調(diào)取的,通過(guò)嗅探網(wǎng)址發(fā)現(xiàn),評(píng)論數(shù)據(jù)的請(qǐng)求接口是:
其實(shí)上面很多參數(shù)也很容易理解,itemId是商品的ID,currentPage是當(dāng)前頁(yè),picture為1時(shí)顯示有圖的評(píng)價(jià),既然是抓取買(mǎi)家秀,那么picture參數(shù)一定要為1了。
如果你直接去訪(fǎng)問(wèn)上面的接口時(shí),會(huì)得到如下圖所示的請(qǐng)求結(jié)果:
看到請(qǐng)求結(jié)果是jsonp格式我就蛋碎了,我不知道如何去解析,但是換種思路,直接用PHP的正則去解析也未嘗不可嘛,通過(guò)嘗試,已經(jīng)正確的能夠解析到評(píng)論內(nèi)容和買(mǎi)家秀的圖片內(nèi)容,如圖:
效果不錯(cuò),代碼實(shí)現(xiàn)了評(píng)論內(nèi)容的抓取、買(mǎi)家秀圖片的抓取,代碼奉上:
<?php $url = "https://rate.tmall.com/list_detail_rate.htm?itemId=524394294771&spuId=341564036&sellerId=100414600&order=3¤tPage=1&append=0&content=1&tagId=&posi=&picture=1&callback=jsonp2339"; $ch2 = curl_init(); curl_setopt($ch2, CURLOPT_URL, $url); curl_setopt($ch2, CURLOPT_FOLLOWLOCATION, TRUE); curl_setopt($ch2, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch2, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch2, CURLOPT_RETURNTRANSFER, TRUE); $texts = curl_exec($ch2); curl_close($ch2); //echo $texts; $pattern = '/"pics"(.+?)","reply"/is'; preg_match_all($pattern, $texts, $match); for($i=0;$i<count($match[0]);$i++){ $pattern2 = '/"rateContent":"(.+?)."reply"/is'; preg_match($pattern2, $match[0][$i], $matchcomments_only); echo "<p>".str_replace('","rateDate":"',' ',str_replace('","reply"','',str_replace('"rateContent":"','',$matchcomments_only[0])))."</p>"; $pattern3 = '/img.alicdn(.+?).jpg/is'; preg_match($pattern3, $match[0][$i], $matchpic_only); echo '<img src="http://'.$matchpic_only[0].'" width=120>'; } /*匹配一張圖片 $pattern = '/"pics"(.+?)","position"/is'; preg_match_all($pattern, $texts, $matchpic); for($i=0;$i<count($matchpic[0]);$i++){ $pattern3 = '/img.alicdn(.+?).jpg/is'; preg_match($pattern3, $matchpic[0][$i], $matchpic_only); echo "<p>".$matchpic_only[0]."</p>"; }*/ /*匹配所有圖片 $pattern = '/"pics"(.+?)","position"/is'; preg_match_all($pattern, $texts, $matchpic); for($i=0;$i<count($matchpic[0]);$i++){ $pics_str=str_replace('"pics":["http://','',str_replace('"],"picsSmall":"","position"','',$matchpic[0][$i])); $arr = explode('","http://',$pics_str); echo "<p>"; foreach($arr as $newstr){ echo '<img src=http://'.$newstr.' width=100 >'; } echo "</p>"; }*/ ?>
下面給大家介紹PHP抓取淘寶搜索商品列表實(shí)例
<?php header("Content-Type:text/html;charset=gbk"); include "Snoopy.class.php"; $snoopy = new Snoopy; $snoopy->fetch("http://s.taobao.com/search?spm=a230r.1.8.7.2NN4M7&q=%C7%EF%B6%AC%B4%F3%D2%C2&source=tbsy&refpid=420461_1006&discount_index=1&newpre=null&p4p_str=fp_midtop%3D0%26firstpage_pushleft%3D0&style=list&s=0#J_Filter"); $html=$snoopy->results; //說(shuō)明:抓取網(wǎng)頁(yè)使用的是 Snoopyphp 框架 也可以直接使用file_get_contents函數(shù)獲取即可, //var_dump($html); preg_match_all('/<h3 class="summary">.*</a>/',$html,$result); //preg_match_all('/<divsid="([a-z0-9_]+)">([^<>]+)</div>/',$html,$result); var_dump($result); echo "<br>"; /* //循環(huán)讀取數(shù)組 foreach($result as $key1){ foreach($key1 as $key => $val){ echo $key.$val; } } */
以上所述是小編給大家介紹的PHP抓取淘寶商品的用戶(hù)曬單評(píng)論+圖片+搜索商品列表實(shí)例,希望對(duì)大家有所幫助!
- PHP+Mysql無(wú)刷新問(wèn)答評(píng)論系統(tǒng)(源碼)
- PHP Ajax實(shí)現(xiàn)頁(yè)面無(wú)刷新發(fā)表評(píng)論
- PHP Ajax實(shí)現(xiàn)頁(yè)面無(wú)刷新發(fā)表評(píng)論
- 使用AngularJS和PHP的Laravel實(shí)現(xiàn)單頁(yè)評(píng)論的方法
- php實(shí)現(xiàn)評(píng)論回復(fù)刪除功能
- ThinkPHP上使用多說(shuō)評(píng)論插件的方法
- PHP仿qq空間或朋友圈發(fā)布動(dòng)態(tài)、評(píng)論動(dòng)態(tài)、回復(fù)評(píng)論、刪除動(dòng)態(tài)或評(píng)論的功能(上)
- 詳解WordPress中調(diào)用評(píng)論模板和循環(huán)輸出評(píng)論的PHP函數(shù)
- php實(shí)現(xiàn)文章評(píng)論系統(tǒng)
相關(guān)文章
Laravel統(tǒng)計(jì)一段時(shí)間間隔的數(shù)據(jù)方法
今天小編就為大家分享一篇Laravel統(tǒng)計(jì)一段時(shí)間間隔的數(shù)據(jù)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10基于PHP實(shí)現(xiàn)商品成交時(shí)發(fā)送短信功能
這篇文章主要介紹了基于PHP實(shí)現(xiàn)商品成交時(shí)發(fā)送短信的功能,代碼簡(jiǎn)單易懂,需要的朋友可以參考下2016-05-05laravel框架實(shí)現(xiàn)敏感詞匯過(guò)濾功能示例
這篇文章主要介紹了laravel框架實(shí)現(xiàn)敏感詞匯過(guò)濾功能,結(jié)合實(shí)例形式分析了laravel框架通過(guò)擴(kuò)展php-dfa-sensitive實(shí)現(xiàn)敏感詞過(guò)濾的相關(guān)操作技巧,需要的朋友可以參考下2020-02-02針對(duì)thinkPHP5框架存儲(chǔ)過(guò)程bug重寫(xiě)的存儲(chǔ)過(guò)程擴(kuò)展類(lèi)完整實(shí)例
這篇文章主要介紹了針對(duì)thinkPHP5框架存儲(chǔ)過(guò)程bug重寫(xiě)的存儲(chǔ)過(guò)程擴(kuò)展類(lèi),結(jié)合完整實(shí)例形式給出了修復(fù)thinkPHP5存儲(chǔ)過(guò)程原有bug的擴(kuò)展類(lèi)定義與使用方法,需要的朋友可以參考下2018-06-06php去除數(shù)組中重復(fù)數(shù)據(jù)
去除數(shù)組中的重復(fù)數(shù)據(jù),又叫排重,本文給出的函數(shù)和php原生array_unique的區(qū)別在于array_unique要求是字符串,而本函數(shù)可以是數(shù)組和對(duì)象2014-11-11php calender(日歷)二個(gè)版本代碼示例(解決2038問(wèn)題)
一個(gè)簡(jiǎn)單的php Calender(日歷),解決了2038問(wèn)題,這樣在32位機(jī)和64位機(jī)上都可以用了,代碼很簡(jiǎn)單,方便修改2013-12-12Laravel 5框架學(xué)習(xí)之Laravel入門(mén)和新建項(xiàng)目
這篇文章主要是Laravel5框架學(xué)習(xí)系列的第一篇文章,跟其他開(kāi)篇文章一樣,我們來(lái)學(xué)習(xí)下Laravel入門(mén)和新建項(xiàng)目,十分的簡(jiǎn)單易懂,有需要的小伙伴可以參考下。2015-04-04Laravel5.7 數(shù)據(jù)庫(kù)操作遷移的實(shí)現(xiàn)方法
這篇文章主要介紹了 Laravel5.7 數(shù)據(jù)庫(kù)操作遷移的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04php側(cè)拉菜單 漂亮,可以向右或者向左展開(kāi),支持FF,IE
其中menu UL UL的left或者right控制向右或者向左顯示子菜單2009-10-10