今天看到一篇java程序员菜鸟进阶(八)分享一个爬取B2B网站信息的程序,感觉那个网站没有那么复杂,一时手痒,就用PHP写了个
<?php
include_once('HttpClient.class.php');//页码
if(isset($_GET['page']) && is_int($_GET['page'])){
$page=$_GET['page'];
}else{
$page=1;
}
//拼接URL
$url='http://product.cn.china.cn/suppliers/'.urlencode(iconv('utf-8','gb2312',$_GET['search'])).'/'.$page.'/';
//以HTTP的形式访问
$content = HttpClient::quickGet($url);
//查找具体联系方式页面地址
preg_match_all('/http:\/\/[a-zA-Z0-9]*\.cn\.china\.cn\/contact-information/i',$content,$urlArray,PREG_PATTERN_ORDER);
foreach($urlArray[0] as $url){
$in_charset='utf-8';
//获得详细信息
$content=HttpClient::quickGet($url);
//由于它有GBK与UTF-8两种编码方式,所以通过DIV来区分
$str_pos=strpos($content,'<div class="lxwm">');
if($str_pos===FALSE){
$str_pos=strpos($content,'<div class="rig-bd fl-clr">');
$in_charset='gbk';
}
//解析详细信息表格
$end_pos=strpos($content,'</div>',$str_pos);
$length=$end_pos - $str_pos;
//输出
echo iconv($in_charset,'gbk',substr($content,$str_pos,$length));
}
?>