时间:2021-05-25
复制代码 代码如下:
<?php
/**
* HOST: ';
$html = $url;
if ($is_url) {
$url = '/' . ltrim($url, '/');
$result = curl_get($host . $url);
if ( isset($result['error']) )
{
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 = '/<td>产品型号<\/td><td>(.[^<]+)</isU';
if (preg_match($pattern, $html, $matches))
{
$result['mfg_part'] = trim($matches[1]);
} else {
// 此项木有,说明也没处处了
return array();
}
// mfg_name
$pattern = '/<td>厂商<\/td>[\s\n]*<td>(.+)<\/td>/isU';
if (preg_match($pattern, $html, $matches))
{
$result['mfg_name'] = trim($matches[1]);
}
// para
$pattern = '/<tr\s+style="background-color:#E9E9E9;color:black; font-weight:bold;">(.+)<\/tr><\/table>/isU';
if (preg_match($pattern, $html, $matches))
{
if (preg_match_all('/<td>(.+)<\/td>/isU', $matches[1], $matches))
{
$count = count($matches[1]);
$count = intval($count / 2 );
foreach ($matches[1] as $k=>$v)
{
if ($k >= $count)
{
break;
}
if (trim($v) == '描述')
{
// desc
$result['desc'] = trim($matches[1][$count + $k]);
continue;
}
$v = trim($v);
$result['para'][$v] = trim($matches[1][$count + $k]);
}
}
}
// pdf_url
$pattern = '/<td>详细资料<\/td><td><a\s+href="(.[^"]+)"/isU';
if (preg_match($pattern, $html, $matches))
{
$result['pdf_url'] = trim($matches[1]);
}
// sup_stock
$pattern = '/<td>库存数量<\/td>[\s\n]*<td>(\d+)<\/td>/isU';
if (preg_match($pattern, $html, $matches))
{
$result['sup_stock'] = trim($matches[1]);
}
// price
$pattern = '/<tr><td.[^>]+>(\d+)\+<\/td><td.[^>]+>.[^\d]*([\d.]+)<\/td><\/tr>/isU';
if (preg_match_all($pattern, $html, $matches))
{
foreach ($matches[1] as $k=>$v)
{
$result['price'][$v] = '¥' . $matches[2][$k];
}
}
//img_url
$pattern = '/<td>图片<\/td><td><img\s+src="(.[^"]+)"/isU';
if (preg_match($pattern, $html, $matches))
{
$result['img_url'] = trim($matches[1]);
}
// page_url
if ($is_url)
{
$result['page_url'] = $host . $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);
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了ASP.NET抓取网页内容的实现方法。分享给大家供大家参考。具体实现方法如下:一、ASP.NET使用HttpWebRequest抓取网页内容复制代
本文实例分析了asp.net中virtual和abstract的区别,分享给大家供大家参考。具体分析如下:一、Virtual方法(虚方法)virtual关键字用
本文实例讲述了ASP.NET中的用法,分享给大家供大家参考。具体如下:在ASP.NET的.aspx页面中,可以在代码标签中通过添加代码。其实,这里的代码和.cs
我们开发ASP.NET站点时,如果将jQueryUIDatepicker与ASP.NET的验证控件(如:RequiredFieldValidator)组合使用:
本文实例讲述了asp.net计算每个页面执行时间的方法。分享给大家供大家参考。具体分析如下:这里的asp.net代码可实现计算每个页面的执行时间,无需要修改页面