亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

PHP實現采集抓取淘寶網單個商品信息

2024-05-04 23:29:59
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了PHP實現采集抓取淘寶網單個商品信息,本文是一種實現思路,使用file_get_contents函數實現,并給出了采集正則,需要的朋友可以參考下
 

調用淘寶的數據可以使用淘寶提供的api,如果只需調用淘寶商品圖片名稱等公開信息在自己網站上,使用php中的 file_get_contents 函數實現即可。

思路:

file_get_contents(url) 該函數根據 url 如 http://www.baidu.com 將該網頁內容(源碼)以字符串形式輸出(一個整字符串),然后配合preg_match,preg_replace等這些正則表達式操作就可以實現獲取該url特定div,img等信息了。當然前題是淘寶在單個商品頁面的結構是固定的,如500圖的img中id就是J_ImgBooth!

具體實現方法:(獲取500圖,名稱,價格,屬性及商品描述)

復制代碼代碼如下:

$text=file_get_contents("http://item.taobao.com/item.htm?id=2380347279"); //將url地址上頁面內容保存進$text

 

A.獲取500圖:

復制代碼代碼如下:

preg_match('/<img[^>]*id="J_ImgBooth"[^r]*rc=/"([^"]*)/"[^>]*>/', $text, $img); 
//運用正則抓取img標簽中id為J_ImgBooth的img,$img[0]為該500圖img標簽,$img[1]為500圖的圖片地址;

 

B. 獲取名稱:

 

復制代碼代碼如下:

preg_match('/<title>([^<>]*)<//title>/', $text, $title); 
//因為正文中的商品名稱標簽沒有特殊class或id正則不好抓取,就抓<title>標簽中的內容了,一般來說title中內容就是商品名稱了(實際有些出入),$title[0]整個title標簽 $title[1]標簽中內容;
$title=iconv('GBK','UTF-8',$title);
//如果你的網站是utf8編碼,那么需要進行一下轉碼(淘寶是gbk編碼)

 

C.獲取價格:

 

復制代碼代碼如下:

preg_match('/<([a-z]+)[^i]*id=/"J_StrPrice/"[^>]*>([^<]*)<////1>/is', $text, $price);
//同理獲取id為J_StrPrice的標簽內容$price[2], $price[0]是整個標簽, $price[1]為strong標簽名;
$price=floatval($price);//放入數據庫估計還有轉一下變量類型

 

D.獲取屬性:

這之前獲取的內容都是在單標簽中相對只需一個正則就可搞定,然而如果要獲取如

 

復制代碼代碼如下:


 
<div id=”xxx”>
 

 
<ul>
 

 
</ul>
 
<div>…
 
<div>…
 
</div>
 
</div>
 
</div>
 

 

這樣特定div中有未知n個<>標簽,獲取該特定div將會非常的困難,搜了下網上,最接近的也只是”/<([a-z]+)[^>]*>([^<>]|(?R))*<////1>/”這樣使用遞歸抓取標簽對,但是他不能抓特定標簽,所以想要輕松抓取class=”attributes”的div我是沒法辦到了。但是淘寶網頁有其特殊性,就是它的各個標簽結構基本是固定的…<div>…</div>標簽后面不是</div><div id=”description”>就是</div><div>,所以我們可以采用變通法達到獲取屬性標簽內容的目的。

 

復制代碼代碼如下:

preg_match('/<(div)[^c]*class=/"attributes/"[^>]*>.*<////1>/is', $text, $text0);
//這個正則會抓取<div開始到整個頁面最后一個</div>標簽,當然我們屬性標簽就在這個的前面部分。
 
$text1=preg_replace("/<//div>[^<]*<(div)[^c]*id=/"description/"[^>]*>.*<////1>/is","",$text0);
//匹配到</div ><div id=”description”>至最后</div>然后用””代替(就是把匹配的刪除了),所以如果attributes的div后面緊跟的是description那么我們已經達到目的了。
 
$attributes=preg_replace("/<//div>[^<]*<(div)[^c]*class=/"box J_TBox/"[^>]*>.*<////1>/is","",$text1);
//如果attributes后面緊跟box J_Tbox標簽,那么我們還需要使用以上這步來剔除box J_Tbox標簽,當然如果attributes的div后面緊跟的是description,這一步將不會匹配到任何即什么都不會做。

 

E.獲取描述:

通過上面方法你肯定覺得淘寶頁面上任何標簽都可以很簡單獲取了吧(我之前也是這么想的),但是使用這個方法獲取描述時得到的內容將會是“描述加載中”,是的,這個描述內容不是在源碼中的,它是打開頁面加載進一大堆js后,不知道從淘寶的哪個角落中加載進來的。

好吧,那么我們也可以模仿它放一些js進去。不知道哪些對加載描述有用?沒事,全加載進來肯定沒錯。不知道需要放那些特定div上去有作用?抓一個源碼,刪掉一些div一步步試試看,你會發現“<div id=”detail”> </div>

 

復制代碼代碼如下:

<div id="description">
 
<div id="J_DivItemDesc">描述加載中</div>
 
</div>

 

這幾個div是加載描述所必須的,那么下面就是寫代碼了:

 

復制代碼代碼如下:

preg_match_all('/<script[^>]*>[^<]*<//script>/is', $text, $content);//頁面js腳本
 $content=$content[0];
 $description='<div id="detail"> </div>
  <div id="description">
   <div id="J_DivItemDesc">描述加載中</div>
  </div>';
foreach ($content as &$v){$description.=iconv('GBK','UTF-8',$v);};
//將這個$description放進頁面,描述就會自動的加載進來了,當然多個商品描述在同一個頁面也會只有一個描述會被加載的。
 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲午夜国产成人av电影男同| 亚洲www在线观看| 欧美激情视频一区二区三区不卡| 另类天堂视频在线观看| 在线色欧美三级视频| 久久99青青精品免费观看| 亚洲天堂免费观看| 久久精品国产欧美激情| 日韩av综合网| 亚洲a在线播放| 黄色精品一区二区| 国产精品ⅴa在线观看h| 亚洲国产天堂久久国产91| 91亚洲永久免费精品| 日韩精品视频观看| 欧美三级xxx| 色婷婷**av毛片一区| 亚洲最大成人在线| 久久99国产精品久久久久久久久| 欧美电影免费播放| 国产91亚洲精品| 欧美孕妇孕交黑巨大网站| 97超碰蝌蚪网人人做人人爽| 国产精品欧美激情| 欧美精品videos性欧美| 日韩av综合网站| 91久热免费在线视频| 中文字幕精品一区久久久久| 欧美色欧美亚洲高清在线视频| 亚洲第一在线视频| 最新国产成人av网站网址麻豆| 欧美精品aaa| 亚洲人成在线播放| 日韩69视频在线观看| 亚洲人成网站777色婷婷| 久久九九热免费视频| 久久久爽爽爽美女图片| 91久久在线观看| 亚洲网址你懂得| 欧美成人国产va精品日本一级| 欧美日韩国产精品一区二区不卡中文| 亚洲欧美在线x视频| 日韩一区二区欧美| 亚洲美女av在线播放| 欧美插天视频在线播放| 日韩精品一二三四区| 久久激情五月丁香伊人| 97视频国产在线| 97视频人免费观看| 亚洲一级黄色片| 成人羞羞国产免费| 日本精品免费一区二区三区| 国产极品jizzhd欧美| 九九热这里只有精品6| 97色在线观看| 国产欧美日韩中文字幕| 亚洲人成电影网站色www| 亚洲最大福利视频网| 国内精品小视频在线观看| zzijzzij亚洲日本成熟少妇| 中文字幕久热精品在线视频| 中文字幕日韩在线播放| 久久91精品国产91久久跳| 欧美专区在线视频| 欧美日韩精品中文字幕| 欧美性开放视频| 91最新在线免费观看| 午夜免费久久久久| 91精品国产电影| 成人欧美在线视频| 久久综合伊人77777蜜臀| 色爱av美腿丝袜综合粉嫩av| 97在线观看视频国产| 国产一区二区成人| 亚洲第一福利在线观看| 5566日本婷婷色中文字幕97| 亚洲人午夜精品| 超碰91人人草人人干| 国产日韩视频在线观看| 日本久久久久久| 亚洲天堂av在线免费| 欧美猛少妇色xxxxx| 亚洲白虎美女被爆操| 欧美性感美女h网站在线观看免费| 欧美性xxxxx极品娇小| 国产成人在线一区二区| 欧美成人在线网站| 欧美壮男野外gaytube| 欧美亚洲国产精品| 97婷婷大伊香蕉精品视频| 亚洲欧美日韩第一区| 国产欧美一区二区三区四区| 日韩精品极品在线观看播放免费视频| 日韩av影片在线观看| 日韩一区二区久久久| 91精品国产九九九久久久亚洲| 日韩欧美精品在线观看| 亚洲精品suv精品一区二区| 一本一本久久a久久精品牛牛影视| 91精品视频大全| 国产拍精品一二三| 亚洲午夜av电影| 狠狠综合久久av一区二区小说| 日韩成人中文电影| 日韩女优人人人人射在线视频| 欧美另类在线播放| 中文字幕亚洲色图| 91a在线视频| 国产精品入口夜色视频大尺度| 97超级碰碰碰| 亚洲一区二区中文字幕| 狠狠躁天天躁日日躁欧美| 97精品国产97久久久久久免费| 中文字幕欧美日韩va免费视频| 亚洲天堂成人在线| 亚洲欧美日韩中文在线| 亚洲欧美日韩国产中文专区| 日韩在线视频中文字幕| 黄色成人av在线| 国产美女主播一区| 91亚洲精品久久久久久久久久久久| 欧美性极品少妇精品网站| 精品国产乱码久久久久久婷婷| 亚洲中国色老太| 91精品在线播放| 国产美女扒开尿口久久久| 日韩视频第一页| 性亚洲最疯狂xxxx高清| 精品中文字幕视频| 欧美电影在线观看完整版| 亚洲视频在线观看视频| 91精品中国老女人| 欧美日韩国产中字| 欧美三级免费观看| 欧美日韩在线观看视频小说| 国产美女久久精品| 色天天综合狠狠色| 国产综合在线视频| 久久夜色撩人精品| 欧美性猛交xxxx久久久| 九九九热精品免费视频观看网站| 国产va免费精品高清在线| 久久九九有精品国产23| 色婷婷av一区二区三区在线观看| 日韩国产欧美精品在线| 国产精品扒开腿爽爽爽视频| 岛国精品视频在线播放| 国产午夜精品理论片a级探花| 热re91久久精品国99热蜜臀| 亚洲精品一区中文| 97国产一区二区精品久久呦| 欧美日韩亚洲一区二区三区| 国产成人精品在线视频| 亚洲爱爱爱爱爱| 日韩成人在线视频观看| 日本成熟性欧美| 日韩欧美999| 国产亚洲精品综合一区91| 日韩电影免费在线观看| 成人国产精品一区二区| 久久免费视频网站| 色婷婷综合久久久久中文字幕1| 久久精品电影网站| xxxxxxxxx欧美|