天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

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

復制代碼 代碼如下:
<?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);

php技術分享下頁面關鍵字抓取components.arrow.com站點代碼,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 欧美群交XXXCOM | AV无码国产精品午夜A片麻豆 | 午夜无码片在线观看影院 | 亚洲色噜噜狠狠网站 | 亚洲一区在线视频观看 | 黑人强伦姧人妻日韩那庞大的 | 无码137片内射在线影院 | 高清日本片免费观看 | gogo亚洲肉体艺术照片9090 | 久久久精品久久久久三级 | 亚洲欧美强伦一区二区另类 | 超碰免费视频公开观看 | 久久久久激情免费观看 | 纵欲(高H) | av网站视频在线观看 | 91精品一区二区综合在线 | 乱淫67194| 亚洲中文字幕日本在线观看 | 狂野欧美性猛XXXX乱大交 | 日本电影护士 | 成人麻豆日韩在无码视频 | 亚洲综合色五月久久婷婷 | 超级碰碰青草久热国产 | 日本久久精品毛片一区随边看 | 97国产人妻精品无码AV在线 | 激情综合色 | 国内精品视频久久久久免费 | 韩国黄电影| 色婷婷综合激情中文在线 | 富婆夜店找黑人猛男BD在线 | 人人在线碰碰视频免费 | 超碰在线公开视频 | 久久最新地址获取 | 無码一区中文字幕少妇熟女H | 俄罗斯搜索引擎Yandex推广入口 | 玖玖在线精品 | 国产情侣真实露脸在线 | 两个人的视频hd全免费 | 免费毛片在线视频 | 2019天天射干网站 | 成电影人免费网站 |