A-A+
phpquery 采集示例 方法及例子demo
【注意:此文章为博主原创文章!转载需注意,请带原文链接,至少也要是txt格式!】
下面的是PHP的采集规则代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | //为了能获取https:// $ch = curl_init(); $user_agent = "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)"; $header[]='Proxy-Connection: keep-alive'; $header[]='Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'; $header[]='User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.76 Safari/537.36'; $header[]='Referer: '.$page; //$header[]='Accept-Encoding: gzip, deflate, sdch'; $header[]='Accept-Language: zh-CN,zh;q=0.8'; curl_setopt($ch, CURLOPT_URL, $page); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); //启用时会将服务器服务器返回的“Location:”放在header中递归的返回给服务器,使用CURLOPT_MAXREDIRS可以限定递归返回的数量。 curl_setopt($ch, CURLOPT_HTTPHEADER, $header); //伪装head头部 //curl_setopt($ch, CURLOPT_ENCODING, 'gzip'); //有些页面经过压缩,这里还原压缩 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //跳过证书检查 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // ~设为0表示不检查证书 ~设为1表示检查证书中是否有CN(common name)字段 ~设为2表示在1的基础上校验当前的域名是否与CN匹配 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //将curl_exec()获取的信息以文件流的形式返回,而不是直接输出。 //curl_setopt($ch, CURLOPT_USERAGENT, $user_agent); //伪装USERAGENT 可以伪装成蜘蛛 $this->html = curl_exec($ch); curl_close($ch); |
赶集的采集规则demo
1 2 3 4 5 6 7 8 9 10 | $url = "http://nb.ganji.com/che/s/_A6/"; $url = file_get_contents($url); */ $reg = array("title"=>array(".ml-10 div a:parent","text")); $rang = ".list-sty1-bg"; //使用curl抓取源码并以GBK编码格式输出 $hj = QueryList::Query($url,$reg,$rang,'curl','UTF-8'); $arr = $hj->jsonArr; echo "<-pre->"; print_r($arr); echo "<-/pre-><hr/>以上是赶集的采集规则<hr/>"; |
游迅网yxdown的采集规则demo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | //采OSC内容页内容 $url = "http://www.yxdown.com/"; //$url = "http://caigou.makepolo.com/spc_new.php?search_flag=0&q=小米辣"; $url = file_get_contents($url); $url = iconv('GBK','UTF-8//IGNORE', $url); //mb_convert_encoding($url, "utf-8", "gbk"); preg_match_all("|<div id=\"jd_middle\">(.*)<div id=\"jd_right\">|isU",$url,$gl); //此处主要取某一处固定的部分 $reg = array("title"=>array("ul a","html","","callfun1")); $rang = ".ifo_con1"; //使用curl抓取源码并以GBK编码格式输出 $hj = QueryList::Query($gl[1][0],$reg); $arr = $hj->jsonArr; echo "<-pre->"; print_r($arr); echo "<-/pre-><hr/>"; |
上面的回调函数代码
1 2 3 4 5 6 7 8 9 10 | function callfun1($content,$key) { $pattern='/<img\s+src=[\\\'| \\\"](.*?(?:[\.gif|\.jpg]))[\\\'|\\\"].*?[\/]?>/'; $str=""; $con=preg_replace($pattern,$str,$content); if(empty($con)){ $con = "-提示:利用回调函数判断这里是图片img,可以利用回调函数过滤。- $content"; } return $con; // return '回调函数1:'.$key.'-'.$content; key 表示-选择器名称 content-对应内容 } |
布施恩德可便相知重
微信扫一扫打赏
支付宝扫一扫打赏