采集阿里巴巴-商家联系信息采集
时间:2008-09-24
来源:互联网
[code]
<?php
/*
+--------------------------------------------------------------------------
| ==================================================================
| Author: Allen E-mail:[email protected] QQ:13963709
| ==================================================================
+---------------------------------------------------------------------------
| >Mission: Clawing Alibaba's data. 抓取阿里巴巴的数据
| >Date: 2008-9-24
| >Copyright: http://www.1234ren.com
| >提供给广大php爱好者交流学习
| >Top page:一级页面:http://list.china.alibaba.com/buyer/companylist/10446-p'.$page.'.html?province=%CB%C4%B4%A8 四川地区
| >Inner page二级页面:http://china.alibaba.com/company/detail/contact/'.$v.'.html, var $v 是公司的名称的拼音首写 公司联系信息页面
+---------------------------------------------------------------------------
*/
/* init.php 是加载了其他的类文件和系统的配置文件,比如数据库类等,config.php etc.这里注释掉,因为没有入库部分 */
//require_once('init.php');
set_time_limit(0);
$total = 1; //这个是你需要抓取的一级页面数目
for($i = 1;$i <= $total;$i++){//从第一页开始
$url = 'http://list.china.alibaba.com/buyer/companylist/10446-p'.$i.'.html?province=%CB%C4%B4%A8';
$content = file_get_contents($url);
}
/*
分析了下阿里巴巴里面企业主页的特征
比如上海峰全包装机械有限公司: http://fengquanpack.cn.alibaba.com/ 等价于 http://china.alibaba.com/company/detail/fengquanpack.html
字符串'fengquanpack'成了关键性的东西
所以下面在一级页面中匹配出页面所有公司的这个关键字
*/
preg_match_all("/\/contact\/(.+)\.html/i",$content, $matches);
//print_r($matches);exit;
/* 获得联系信息 二级页面开始 */
foreach($matches[1] as $v){
$contact_page='http://china.alibaba.com/company/detail/contact/'.$v.'.html';
$contact_content = file_get_contents($contact_page);
/* 获得公司名称 */
preg_match('/<title>(.*?)<\/title>/is',$contact_content, $title_arr);
$arr = explode('-',$title_arr[1]);
$company_name = is_array($arr)?$arr[count($arr)-1]:$title_arr[1];
$company_name = trim(str_replace('联系方式','',$company_name));
/* 获得联系人电话 */
preg_match('/电 话:(.*?)<\/li>/is',$contact_content,$phone_arr);
$phone = $phone_arr[1];
/* 获得联系人移动电话 */
preg_match('/移动电话: (.*?)<\/li>/is',$contact_content,$mphone_arr);
$mphone = $mphone_arr[1];
/* 获得联系地址 */
preg_match('/地 址: (.*?)<\/li>/is',$contact_content,$address_arr);
$address = $address_arr[1];
/* 获得邮编 */
preg_match('/邮 编: (.*?)<\/li>/is',$contact_content,$post_arr);
$post = $post_arr[1];
/* 获得公司主页 */
preg_match('/公司主页:(.*?)<\/li>/is',$contact_content,$site_arr);
$site = $site_arr[1];
//入库或者写文件 importdata();
}
?>
[/code]好不容易,第一次发帖,其实我是phpchina的一个水鬼 ,呵呵
<?php
/*
+--------------------------------------------------------------------------
| ==================================================================
| Author: Allen E-mail:[email protected] QQ:13963709
| ==================================================================
+---------------------------------------------------------------------------
| >Mission: Clawing Alibaba's data. 抓取阿里巴巴的数据
| >Date: 2008-9-24
| >Copyright: http://www.1234ren.com
| >提供给广大php爱好者交流学习
| >Top page:一级页面:http://list.china.alibaba.com/buyer/companylist/10446-p'.$page.'.html?province=%CB%C4%B4%A8 四川地区
| >Inner page二级页面:http://china.alibaba.com/company/detail/contact/'.$v.'.html, var $v 是公司的名称的拼音首写 公司联系信息页面
+---------------------------------------------------------------------------
*/
/* init.php 是加载了其他的类文件和系统的配置文件,比如数据库类等,config.php etc.这里注释掉,因为没有入库部分 */
//require_once('init.php');
set_time_limit(0);
$total = 1; //这个是你需要抓取的一级页面数目
for($i = 1;$i <= $total;$i++){//从第一页开始
$url = 'http://list.china.alibaba.com/buyer/companylist/10446-p'.$i.'.html?province=%CB%C4%B4%A8';
$content = file_get_contents($url);
}
/*
分析了下阿里巴巴里面企业主页的特征
比如上海峰全包装机械有限公司: http://fengquanpack.cn.alibaba.com/ 等价于 http://china.alibaba.com/company/detail/fengquanpack.html
字符串'fengquanpack'成了关键性的东西
所以下面在一级页面中匹配出页面所有公司的这个关键字
*/
preg_match_all("/\/contact\/(.+)\.html/i",$content, $matches);
//print_r($matches);exit;
/* 获得联系信息 二级页面开始 */
foreach($matches[1] as $v){
$contact_page='http://china.alibaba.com/company/detail/contact/'.$v.'.html';
$contact_content = file_get_contents($contact_page);
/* 获得公司名称 */
preg_match('/<title>(.*?)<\/title>/is',$contact_content, $title_arr);
$arr = explode('-',$title_arr[1]);
$company_name = is_array($arr)?$arr[count($arr)-1]:$title_arr[1];
$company_name = trim(str_replace('联系方式','',$company_name));
/* 获得联系人电话 */
preg_match('/电 话:(.*?)<\/li>/is',$contact_content,$phone_arr);
$phone = $phone_arr[1];
/* 获得联系人移动电话 */
preg_match('/移动电话: (.*?)<\/li>/is',$contact_content,$mphone_arr);
$mphone = $mphone_arr[1];
/* 获得联系地址 */
preg_match('/地 址: (.*?)<\/li>/is',$contact_content,$address_arr);
$address = $address_arr[1];
/* 获得邮编 */
preg_match('/邮 编: (.*?)<\/li>/is',$contact_content,$post_arr);
$post = $post_arr[1];
/* 获得公司主页 */
preg_match('/公司主页:(.*?)<\/li>/is',$contact_content,$site_arr);
$site = $site_arr[1];
//入库或者写文件 importdata();
}
?>
[/code]好不容易,第一次发帖,其实我是phpchina的一个水鬼 ,呵呵

作者: xcyxl 发布时间: 2008-09-24
没意思,还以为是这种页面呢
http://detail.china.alibaba.com/ ... amp;verifycode=6711
。。。。
http://detail.china.alibaba.com/ ... amp;verifycode=6711
。。。。
作者: qai41 发布时间: 2008-10-15



作者: ws00377531 发布时间: 2008-10-31
挺好的 正好去学习采集
作者: dxlhs3700 发布时间: 2008-10-31
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28