使用正则表达式获取电影天堂下载地址
发布时间:2020-12-14 01:13:23 所属栏目:百科 来源:网络整理
导读:先祭奠一下逝去的6级考试,临考准考证丢失5555555....索性就不考了,学习下的正则表达式吧 ?php function getMovies () { $date = "20150610" ; $i = 0 ; $num = 48276 ; while ( $num = 48286 ){ //获取页面 $orgin = file_get_contents( "http://www.ygdy8
先祭奠一下逝去的6级考试,临考准考证丢失5555555....索性就不考了,学习下的正则表达式吧 <?php function getMovies(){ $date = "20150610"; $i = 0; $num = 48276; while($num <= 48286){ //获取页面 $orgin = file_get_contents("http://www.ygdy8.net/html/gndy/dyzz/".$date."/".$num.".html"); if(strlen($orgin) > 10000){ //获取电影名称 preg_match_all('/[a-z]+=#[da]+>(.*?)</font></h1></div>/',$orgin,$movie_name); //获取电影链接 preg_match_all("/<as*.*>.*?</a>/",$movie_link); //整理存入数组 $arr[$i]["name"] = $movie_name[1][0]; $arr[$i]["link"] = $movie_link[0][68]; $i +=1; //进入下一个数组 } $num +=1; } echo "<pre>"; print_r ($arr); echo "</pre>"; } getMovies();
存在问题: 待提高中…… <?php define("MOVIES_DIR","movies/"); $data = file_get_contents("http://www.dytt8.net/"); //获取一级页面 $model_one = "/<li>s*<a href="(.*?)">(.*?)</a>/U"; preg_match_all($model_one,$data,$menusList); //匹配出所要的分类名称级链接 $menusList['url'] = $menusList[1]; //提取链接 $menusList['name'] = $menusList[2]; //提取名称 for($i=0 ;$i<8; $i++){ //页面中有八个分类符合下边年正则的规则,循环8次 $movies_path=MOVIES_DIR.$menusList['name'][$i]; // 目录不存在创建目录 if(!is_dir($movies_path)){ mkdir($movies_path,0700,true); //因为设计到多层文件夹,所以打开递归true } $base_url = $menusList['url'][$i]; //上边获取的URL是相对路径 $data = file_get_contents($base_url); //获取二级页面代码 $model_two = "/<b>.*<a href="(.*)"/sU"; // $model_two = "/<b>.*<a href="(.*?)"/s";//和上边比较??????????????????????????????????? preg_match_all($model_two,$moviesList); //得到三级页面地址 foreach ($moviesList['1'] as $moviesList) { $base_url = "http://www.ygdy8.net".$moviesList; //上边获取的URL是相对路径,补全它 $data = file_get_contents($base_url); //获取三级页面代码 // 获取电影名称 $model_three_name = "/#07519a>(.*?)</font>/"; preg_match($model_three_name,$movie); $movies["name"] = $movie[1]; // print_r($movies['name']);exit; //测试成功 // 获取电影链接 $model_three_url = "/#fdfddf"><a href="(.*?)">/"; preg_match($model_three_url,$movie); $movies["url"] = $movie[1]; // print_r($movies['url']);exit; //测试成功 // 获取电影简介 $model_three_intro = "/<br /><br />◎(.*?)<br /><br />/"; preg_match($model_three_intro,$movie); @$movies["intro"] = $movie[1]; //因为有的页面没有此项或搜索错误+@ // print_r($movies['intro']);exit; //测试成功 // 获取电影图片 $model_three_pic = "/<p><br /><img border="0" src="(.*?)" alt=/"; preg_match($model_three_pic,$movie); @$movies["pic"] = $movie['1']; //因为有的页面没有此项或搜索错误+@ // print_r($movie);exit; // 数据获取完成,进行数据存储 $result=""; foreach ($movies as $key => $value) { $result .="电影".$key."是:".$value."rn"; } // print_r($movies);exit; //测试成功 @file_put_contents($movies_path."/".$movies["name"].".txt",$result); } } ?>
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- reactjs – React – fetch post content-type在fiddler中查
- React-Native组件之 TabBarIOS和TabBarIOS.Item
- 如何将symfony yaml配置文件转换为xml格式
- c – 是否可以为std :: string和std :: wstring编写一个函数
- xml – 如何从其内部子组件正确组合一个有效的xlsx文件?
- 正则表达式入门
- Flex之旅:第二部分:容器与布局(2)---动态添加组件(TabNa
- swift – 使用模块“CALayer”作为类型
- ajax – 为什么我的跨域POST请求被OPTIONS请求预检?
- The introduction of Regex