当前位置: 首页 > 后端技术 > PHP

PHP纯手写正则爬星座宫网站八字数据

时间:2023-03-29 19:17:34 PHP

星座之家(http://www.xzw.com/fortune/)财富界面:最终抓取到的数据结果展示在APP上:下面是用正则表达式实现的代码,我花了半天写了一年多以前的。现在想想,如果你用Scrapy或者phpspider,几行代码就搞定了,不用那么辛苦了~array('aries','03/21-04/19'),'Taurus'=>array('taurus','04/20-05/20'),'Gemini'=>array('gemini','05/21-06/21'),'Cancer'=>array('cancer','06/22-07/22'),'Leo'=>array('leo','07/23-08/22'),'Virgo'=>array('virgo','08/23-09/22'),'Libra'=>array('libra','09/23-10/23'),'天蝎座'=>array('scorpio','10/24-11/22'),'射手座'=>array('sagittarius','11/23-12/21'),'魔狼座'=>array('capricorn','12/22-01/19'),'水瓶座'=>array('aquarius','01/20-02/18'),'双鱼座'=>array('pisces','02/19-03/20'));*/$constellation=isset($_REQUEST['星座'])&&!empty($_REQUEST['星座'])?trim($_REQUEST['xingzuo']):null;$category=isset($_REQUEST['category'])&&!empty($_REQUEST['category'])?intval($_REQUEST['category']):null;$all_xingzuo=array('白羊座','金牛座','双子座','巨蟹座','狮子座','处女座','天秤座','天蝎座','射手座','摩羯座','水瓶座','双鱼座');$all_category=array(0,1,2,3,4,5);if(!in_array($constellation,$all_xingzuo)||!in_array($category,$all_category)){exit('参数错误');}$domain='http://www.xzw.com/fortune/';$apiUrl='';if($category){$apiUrl=$domain.$constellation.'/'.$category.'.html';}else{$apiUrl=$domain.$constellation.'/';}header("Content-type:text/html;charset=utf-8");functiongetFortuneData($url){$fortune_data=array();$data=file_get_contents($url);$data=mb_convert_encoding($data,'utf-8','gbk');preg_match('/(.*)<\/div>/ism',$data,$div_c_main);preg_match('/

(.*?)<\/dl>/ism',$div_c_main[1],$dl);preg_match('/
(.*?)<\/dd>/ism',$dl[1],$dd);preg_match('/
    (.*?)<\/ul>/ism',$dd[1],$ul);$ul=str_replace('