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

首頁 > 開發 > PHP > 正文

分享下頁面關鍵字抓取components.arrow.com站點代碼

2024-05-04 23:20:53
字體:
來源:轉載
供稿:網友

復制代碼 代碼如下:


<?php
 /**
 * HOST: components.arrow.com
 */
 //set_time_limit(0);
 // base function
 function curl_get($url, $data = array(), $header = array(), $timeout = 15, $port = 80, $reffer = '', $proxy = '')
 {
 $ch = curl_init();
 if (!empty($data)) {
 $data = is_array($data)?http_build_query($data): $data;
 $url .= (strpos($url,'?')? '&': "?") . $data;
 }
 curl_setopt($ch, CURLOPT_URL, $url);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
 curl_setopt($ch, CURLOPT_POST, 0);
 curl_setopt($ch, CURLOPT_PORT, $port);
 curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); //是否抓取跳轉后的頁面
 $reffer && curl_setopt($ch, CURLOPT_REFERER, $reffer);
 if($proxy) {
 curl_setopt($ch, CURLOPT_PROXY, $proxy);
 curl_setopt($ch, CURLOPT_PROXYPORT, 1723);
 curl_setopt($ch, CURLOPT_PROXYUSERPWD,"andhm001:andhm123");
 }

$result = array();
 $result['result'] = curl_exec($ch);
 if (0 != curl_errno($ch)) {
 $result['error'] = "Error:/n" . curl_error($ch);

}
 curl_close($ch);
 return $result;
 }

復制代碼 代碼如下:


function curl_post($url, $data = array(), $header = array(), $timeout = 15, $port = 80)
 {
 $ch = curl_init();
 curl_setopt($ch, CURLOPT_URL, $url);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
 curl_setopt($ch, CURLOPT_PORT, $port);
 !empty ($header) && curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
 curl_setopt($ch, CURLOPT_POST, 1);
 curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

$result = array();
 $result['result'] = curl_exec($ch);
 if (0 != curl_errno($ch)) {
 $result['error'] = "Error:/n" . curl_error($ch);

}
 curl_close($ch);

return $result;
 }

/**
 * 獲取列表頁的html源碼
 * @param string $keywords 搜索關鍵字
 * @param int $start 開始記錄數
 * @return boolean|array
 */
 function getListHtml($keywords, $start = 0)
 {
 if ($start < 0)
 {
 return false;
 }

$postData = array(
 'search_token' => $keywords,
 'start' => $start,
 'limit' => 100,
 );

$result = curl_post('http://components.arrow.com/part/search/' . $keywords, http_build_query($postData));
 if ( isset($result['error']) )
 {
 return false;
 //exit($result['error']);
 }
 $result = $result['result'];

return $result;
 }

/**
 * 獲取列表頁 連接href
 * @param string $html html源碼
 * @return array
 */
 function getListHref($html)
 {
 $pattern = '/<td/s+class="col_mfr_part_num"><a/s+href="(.[^>]+)">/isU';
 if (preg_match_all($pattern, $html, $matches))
 {
 return $matches[1];
 } else {
 // 沒有匹配項
 return array();
 }
 }

/**
 * 獲取下一頁數字start
 * @param string $html html源碼
 * @return number
 */
 function getListNextPage($html)
 {
 $pattern = '/<script/s+language="javascript">buildPagination/(/'/d+/',/'/d+/',/'(/d+)/',/d+/);<//script>/isU';
 if (preg_match($pattern, $html, $matches))
 {
 return intval($matches[1]);
 } else {
 return -1;
 }
 }

/**
 * 獲取列表也所有的詳細列表
 * @param string $keywords 搜索關鍵字
 * @return boolean|array
 */
 function getListHrefAll($keywords)
 {
 if (empty($keywords))
 {
 return false;
 }

$html = getListHtml($keywords);
 $hrefList = getListHref($html);
 if (empty($hrefList))
 {
 // 沒有結果
 return array();
 }
 $nextPage = getListNextPage($html);
 $loop =0;
 while ($nextPage > 0)
 {
 $html = getListHtml($keywords, $nextPage);
 $tmpHrefList = getListHref($html);
 $hrefList = array_merge($hrefList, $tmpHrefList);
 $nextPage = getListNextPage($html);
 $loop ++;
 }
 return $hrefList;
 }

/**
 * 獲取詳情頁信息
 * @param string $url url地址
 * @return array()
 */
 function getDetail($url)
 {
 if ( empty($url) )
 {
 return false;
 }
 $host = 'http://components.arrow.com';

$url = $host . $url;
 $result = curl_get($url);
 if ( isset($result['error']) )
 {
 return array();
 //exit($result['error']);
 }
 $html = $result['result'];

$result = array(
 'sup_part' => '', // 供應商型
 'sup_id' => '', // 供應商ID
 'mfg_part' => '', // 制造商型號
 'mfg_name' => '', // 制造商名稱
 'cat_name' => '', // 分類名稱
 'para' => '', // 屬性
 'desc' => '', // 描述
 'pdf_url' => '', // PDF地址
 'sup_stock' => '', // 庫存
 'min_purch' => '', // 最小訂購量
 'price' => '', // 價格
 'img_url' => '', // 圖片地址
 'createtime' => '', // 創建時間
 'datacode' => '', // 批號
 'package' => '', // 封裝
 'page_url' => '', // 頁面地址
 );

// mfg_part
 $pattern = '/<li>[/s/n]*<strong>Part No:/s*<//strong>(.+)<//li>/isU';
 if (preg_match($pattern, $html, $matches))
 {
 $result['mfg_part'] = trim($matches[1]);
 } else {file_put_contents('page.txt', $html);die('xxx');
 return array();
 }

// mfg_name
 $pattern = '/<li>[/s/n]*<strong>Manufacturer: <//strong>(.+)<//li>/isU';
 if (preg_match($pattern, $html, $matches))
 {
 $result['mfg_name'] = trim($matches[1]);
 }

// cat_name
 $pattern = '/displayCategory/(/'(.[^/']+)/'/);/isU';
 if (preg_match($pattern, $html, $matches))
 {
 $result['cat_name'] = trim($matches[1]);
 $result['cat_name'] = str_replace('|', '>', $result['cat_name']);
 }

// para
 $tablepattern = '/<table/s+id="part_specs".[^>]*>(.+)<//table>/isU';
 if (preg_match($tablepattern, $html, $matches))
 {
 $pattern = '/<tr>[/s/n]*<td><strong>(.+)<//strong><//td><td>(.+)<//td>[/s/n]*<//tr>/isU';
 if (preg_match_all($pattern, $matches[1], $matches))
 {
 foreach($matches[1] as $k=>$v)
 {
 $v = trim($v);
 if ('Package Type' == $v)
 {
 $result['package'] = trim($matches[2][$k]);
 continue;
 }
 $result['para'][$v] = trim($matches[2][$k]);
 }
 }
 }

// desc
 $pattern = '/<div/s+id="part_title">.+<h4>(.+)<//h4>[/s/n]*<//div>/isU';
 if (preg_match($pattern, $html, $matches))
 {
 $result['desc'] = trim($matches[1]);
 }

// pdf_url
 $pattern = '/<li/s+class="datasheet">[/s/n]*<strong>Datasheet:<//strong><a/s+href="(.[^"]+)"/isU';
 if (preg_match($pattern, $html, $matches))
 {
 $result['pdf_url'] = $host . trim($matches[1]);
 }

// sup_stock
 $pattern = '/<td/s+id="inv_1"/s+class="li_inv">([/d,]+)<//td>/isU';
 if (preg_match($pattern, $html, $matches))
 {
 $result['sup_stock'] = trim($matches[1]);
 $result['sup_stock'] = str_replace(',', '', $result['sup_stock']);
 }

// min_purch
 $pattern = '/<span/s+id="multiples">[/s/n]*<strong>Multiple:/s*<//strong>(.+)<//span>/isU';
 if (preg_match($pattern, $html, $matches))
 {
 $result['min_purch'] = trim($matches[1]);
 }

// price
 $pattern = '/<div/s+id="price_1"/s+class="li_price">(.[^<]+)<//div>/isU';
 if (preg_match($pattern, $html, $matches))
 {
 $result['price'][1] = trim($matches[1]);
 }
 $pattern = '/<div/s+id="price_1"/s+class="li_price">[/s/n]*<span.[^>]+title="(.[^"]+)">/isU';
 if (preg_match($pattern, $html, $matches))
 {
 $priceurl = str_replace('&', '&', $matches[1]);
 $json = curl_get($priceurl);
 $json = $json['result'];
 if (! empty($json))
 {
 $jsonresult = json_decode($json, true);
 foreach ($jsonresult['parts'][0]['webprice']['resale'] as $k=>$v)
 {
 $result['price'][$v['minqty']] = $v['price'];
 }
 }
 }

// img_url
 $pattern = '/<div/s+id="part_image">[/s/n]*<img/s+src="(.[^"]+)"/isU';
 if (preg_match($pattern, $html, $matches))
 {
 $result['img_url'] = trim($matches[1]);
 }

// page_url
 $result['page_url'] = $url;

return $result;
 }

/**
 * 最終調用函數
 * @param string $keywords 搜索關鍵字
 * @return array
 */
 function getData($keywords)
 {
 $hrefList = getListHrefAll($keywords);
 $result = array();

foreach ($hrefList as $k=>$v)
 {
 $result[] = getDetail($v);
 }

return $result;
 }

// Test Script
 $keywords = trim($_GET['keywords']);
 $result = getData($keywords);

print_r($result);

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久久久久久一区探花| 国产精品免费福利| 欧美高清电影在线看| 66m—66摸成人免费视频| 中文字幕亚洲欧美在线| 夜夜嗨av色综合久久久综合网| 欧美亚洲另类在线| 亚洲综合日韩在线| 亚洲欧美日韩久久久久久| 欧美肥臀大乳一区二区免费视频| 欧美日韩国产精品一区二区三区四区| 久久久免费精品视频| 亚洲男人天堂九九视频| www亚洲欧美| 欧美视频在线观看免费| 日韩中文字幕在线观看| 久久99国产精品久久久久久久久| 黄网站色欧美视频| 美女999久久久精品视频| 成人亚洲综合色就1024| 欧美在线精品免播放器视频| 欧美激情视频在线免费观看 欧美视频免费一| 欧美性极品xxxx做受| 中文字幕精品一区久久久久| 亚洲精品国产精品国产自| 亚洲va久久久噜噜噜久久天堂| 91极品视频在线| 亲爱的老师9免费观看全集电视剧| 久久天天躁狠狠躁夜夜av| 欧美午夜无遮挡| 亚洲国产精彩中文乱码av在线播放| 红桃视频成人在线观看| 国产拍精品一二三| 日韩av大片免费看| 欧美日韩亚洲成人| 久久久999精品免费| 日韩美女在线观看一区| 丝袜亚洲欧美日韩综合| 国产精品国产三级国产aⅴ9色| 亚洲欧洲高清在线| 激情成人中文字幕| 欧美精品videossex88| 91精品国产91久久久久久最新| 国产精品色悠悠| 精品毛片三在线观看| 欧美精品电影免费在线观看| www欧美日韩| 成人国产亚洲精品a区天堂华泰| 亚洲aⅴ男人的天堂在线观看| 久久久久一本一区二区青青蜜月| 亚洲欧美自拍一区| 日韩欧美在线免费观看| 国产精品久久久久久久久免费| 国产精品海角社区在线观看| 中文在线不卡视频| 中文字幕精品一区二区精品| 成人激情视频免费在线| 一区二区三区四区精品| 国产美女精品免费电影| 久久久久久成人精品| 久久成人精品视频| 国产激情综合五月久久| 九九热最新视频//这里只有精品| 欧美激情精品久久久久| 精品国产鲁一鲁一区二区张丽| 国产精品久久9| 久久精品国产欧美激情| 6080yy精品一区二区三区| 亚洲午夜久久久影院| 欧美精品免费在线观看| 欧美精品久久久久久久久| 国外成人性视频| 成人国产亚洲精品a区天堂华泰| 亚洲欧美一区二区三区久久| 国产一区二区三区在线观看网站| 国产成人一区二| 亚洲精品国产免费| 91精品国产综合久久香蕉的用户体验| 欧美激情精品久久久久久久变态| 亚洲va欧美va国产综合剧情| 中文字幕日韩精品在线| 精品美女国产在线| 日韩一区二区欧美| 亚洲欧美日韩在线高清直播| 国产一区av在线| 国产精品热视频| 国产精品美女主播| 日韩av在线精品| 亚洲第一网站男人都懂| 久久久久久91香蕉国产| 国产精品久久久久久久久久| 色偷偷av一区二区三区| 福利视频一区二区| 亚洲精品乱码久久久久久金桔影视| 日韩免费av片在线观看| 欧美成人激情视频免费观看| 456国产精品| 亚洲精品中文字幕女同| 精品日韩美女的视频高清| 亚洲伊人一本大道中文字幕| 日韩免费看的电影电视剧大全| 亚洲精品国产成人| 欧美性生交大片免网| 国产精品18久久久久久首页狼| 美女999久久久精品视频| 久久91精品国产91久久久| 亚洲在线一区二区| 国产精品久久久久久久9999| 亚洲午夜未满十八勿入免费观看全集| 欧美日韩在线看| 久久国产精品久久久久| 中文字幕亚洲无线码在线一区| xxx成人少妇69| 国产精品免费一区二区三区都可以| 国产精品扒开腿爽爽爽视频| 欧美日韩亚洲高清| 国产日韩中文字幕| 91av成人在线| 久久精品国产精品亚洲| 一区二区三区视频在线| 日韩av观看网址| 精品成人乱色一区二区| 青青久久av北条麻妃黑人| 久久久中文字幕| 色老头一区二区三区在线观看| 欧美精品久久久久久久久| 欧美性生交xxxxxdddd| 成人午夜激情免费视频| 欧美最猛性xxxxx亚洲精品| 国产精品吊钟奶在线| 欧美日韩在线看| 亚洲国产精品嫩草影院久久| 欧美性受xxxx黑人猛交| 国产精品www色诱视频| 国产午夜精品免费一区二区三区| 一区二区三区四区视频| 精品国产乱码久久久久久婷婷| 成人黄色av免费在线观看| 久久国产视频网站| 热久久美女精品天天吊色| 亚洲国产精品999| 国产97色在线| 欧美午夜激情视频| 精品呦交小u女在线| 欧美多人爱爱视频网站| 欧美日韩国产一中文字不卡| 91成人福利在线| 亚洲国产精品女人久久久| 国产精品日日做人人爱| 精品动漫一区二区三区| 九色精品美女在线| 久久精品一偷一偷国产| 国产福利精品在线| 亚洲va电影大全| 久久艳片www.17c.com| 久久九九精品99国产精品| 国产91精品视频在线观看| 欧美肥老妇视频| 欧美视频在线看| 欧美成人午夜影院| 日韩中文字幕精品视频| 成人在线播放av| 精品福利视频导航| 成人免费看黄网站|