<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post/1253/</link>
<title><![CDATA[抓取豆瓣电影数据以及分析数据程序]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Fri, 12 Sep 2008 08:28:09 +0000</pubDate> 
<guid>http://www.jackxiang.com/post/1253/</guid> 
<description>
<![CDATA[ 
	<div class="code">&lt;?php<br/>/*<br/>form:1292275<br/>to:&nbsp;&nbsp;2000000<br/>* */<br/>error_reporting(E_ALL);<br/>class snatch<br/>&#123;<br/>&nbsp;&nbsp;var $db_host=&quot;10.210.128.197&quot;;<br/>&nbsp;&nbsp;var $db_port=&quot;3600&quot;;<br/>&nbsp;&nbsp;var $db_name=&quot;app4&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;var $user=&quot;app4&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;var $password=&quot;f40RB12cbE4a&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;var $table=&quot;movie_info&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;var $path=&quot;./&quot;;//扫描的目录位置<br/>&nbsp;&nbsp;function _setvalue($path)<br/>&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;path=$path;<br/>&nbsp;&nbsp;&#125;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;function judge_return_info(&amp;$all_film_info)//相当于日志和初始化的作用，同时检查数据是否合格和有漏补空，清NUll为空！<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;//补全数据库空白字段，以防发生插入错误，和Null值的发上<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$all_film_fild=array(&quot;0&quot;=&gt;&quot;english_name&quot;,&quot;1&quot;=&gt;&quot;chinese_name&quot;,&quot;2&quot;=&gt;&quot;other_name&quot;,&quot;3&quot;=&gt;&quot;playwright&quot;,&quot;4&quot;=&gt;&quot;director&quot;,&quot;5&quot;=&gt;&quot;main_performer&quot;,&quot;6&quot;=&gt;&quot;play_year&quot;,&quot;7&quot;=&gt;&quot;language&quot;,&quot;8&quot;=&gt;&quot;country&quot;,&quot;9&quot;=&gt;&quot;imdb&quot;,&quot;10&quot;=&gt;&quot;introduce&quot;,&quot;11&quot;=&gt;&quot;play_img&quot;,&quot;12&quot;=&gt;&quot;tag&quot;);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach($all_film_fild as $keys=&gt; $fileds)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!isset($all_film_info&#91;$fileds&#93;))//检查抓取的东西的数据库对应项键值是否都存在<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$all_film_info&#91;$fileds&#93;=&quot;&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$empty_filds&#91;&#93;=$fileds;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(is_array($all_film_info&#91;$fileds&#93;))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$all_film_info&#91;$fileds&#93;=serialize($all_film_info&#91;$fileds&#93;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return $empty_filds;<br/><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/><br/>&nbsp;&nbsp;function opendir_analyse_insert()<br/>&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;$dir = opendir($this-&gt;path);//取得dir目录列表<br/>&nbsp;&nbsp;&nbsp;&nbsp;while (($file = readdir($dir)) !== false)//列出 images 目录中的文件<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(($file !=&quot;.&quot;)&amp;&amp;$file !=&quot;..&quot;)//防止.或者..<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$all = $this-&gt;analyse($this-&gt;path,$file);//分析数据<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$empty_filds = $this-&gt;judge_return_info($all);//取地址提高效率<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$flag=$this-&gt;insert($all);//插入数据<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($flag)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;对文件&nbsp;&nbsp;&nbsp;&nbsp;&quot;.$file.&quot;&nbsp;&nbsp; 的分析完毕，发现&nbsp;&nbsp; &quot;.join(&quot;,&quot;,$empty_filds).&quot;&nbsp;&nbsp; 等分析为空，&nbsp;&nbsp;&nbsp;&nbsp;插入数据库成功！&#92;n&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;else&#123;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;对文件&nbsp;&nbsp;&nbsp;&nbsp;&quot;.$file.&quot;&nbsp;&nbsp; 的分析完毕，发现&nbsp;&nbsp;&nbsp;&nbsp;&quot;.join(&quot;,&quot;,$empty_filds).&quot;&nbsp;&nbsp;等分析为空，&nbsp;&nbsp;&nbsp;&nbsp;插入数据库失败！&#92;n&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//print_r($all);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;closedir($dir);<br/>&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;function analyse($path,$file)// 分析返回要插入的资料,返回一个数组<br/>&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;$file_info=$path.&quot;/&quot;.$file;<br/>&nbsp;&nbsp;&nbsp;&nbsp;$str_temp = file_get_contents($file_info);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$str_temp = str_replace(&quot;&#92;n&quot;, &quot;&quot;,$str_temp);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;preg_match(&quot;/.*&lt;span&#91;^p&#93;*pl2&#91;^&gt;&#93;*&gt;(&#91;^&lt;&#93;*)&lt;&#92;/span&gt;/i&quot;, $str_temp, $out);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($out==NULL)//假如是中文名称没有匹配到则把正常的&lt;h1&gt;***&lt;/h1&gt;中的***为中文，特殊情况<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;preg_match(&quot;/&lt;h1&gt;&#91;^&lt;&#93;*&lt;&#92;/h1&gt;/i&quot;,$str_temp, $out5);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//去掉&lt;h1&gt;&lt;/h1&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$str_temp1=strstr($out5&#91;0&#93;,&quot;&lt;h1&gt;&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$position = strpos($out5&#91;0&#93;,&quot;&lt;/h1&gt;&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$real_postion=$position-4;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$film_all_info&#91;&quot;chinese_name&quot;&#93;=substr($out5&#91;0&#93;,4,$real_postion);//4就是&lt;h1&gt;长度<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//print_r($out5);//英文名称<br/><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;else//匹配到中文后，中文是中文，英文是英文，以下分别做处理<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//var_dump($out);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//print_r($out);//简体中文名 $out&#91;1&#93;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$chinese_name_all = explode(&quot;:&quot;,$out&#91;1&#93;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$chinese_name=$chinese_name_all&#91;1&#93;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$film_all_info&#91;&#039;chinese_name&#039;&#93;=$chinese_name;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;preg_match(&quot;/&lt;h1&gt;&#91;^&lt;&#93;*&lt;&#92;/h1&gt;/i&quot;,$str_temp, $out5);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//去掉&lt;h1&gt;&lt;/h1&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$str_temp1=strstr($out5&#91;0&#93;,&quot;&lt;h1&gt;&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$position = strpos($out5&#91;0&#93;,&quot;&lt;/h1&gt;&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$real_postion=$position-4;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$film_all_info&#91;&quot;english_name&quot;&#93;=substr($out5&#91;0&#93;,4,$real_postion);//4就是&lt;h1&gt;长度<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//print_r($out5);//英文名称<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$movie_filed=array(&quot;0&quot;=&gt;&quot;编剧&quot;,&quot;1&quot;=&gt;&quot;导演&quot;,&quot;2&quot;=&gt;&quot;主演&quot;,&quot;3&quot;=&gt;&quot;上映年度&quot;,&quot;4&quot;=&gt;&quot;制片国家/地区&quot;,&quot;5&quot;=&gt;&quot;又名&quot;,&quot;6&quot;=&gt;&quot;imdb链接&quot;,&quot;7&quot;=&gt;&quot;语言&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$dba_film_fild=array(&quot;0&quot;=&gt;&quot;playwright&quot;,&quot;1&quot;=&gt;&quot;director&quot;,&quot;2&quot;=&gt;&quot;main_performer&quot;,&quot;3&quot;=&gt;&quot;play_year&quot;,&quot;4&quot;=&gt;&quot;country&quot;,&quot;5&quot;=&gt;&quot;other_name&quot;,&quot;6&quot;=&gt;&quot;imdb&quot;,&quot;7&quot;=&gt;&quot;language&quot;);//每一个键值对应的电影名称通过 array_search()来对应<br/><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;preg_match_all(&quot;/&lt;span&#91;^&gt;&#93;*pl&#92;&quot;&#91;^&gt;&#93;*&gt;(.*?)&lt;&#92;/span&gt;(.*?)&lt;br&#92;/&gt;/i&quot;,$str_temp, $out3);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//print_r($out3&#91;1&#93;);//导演，编剧主演等信息<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//print_r($out3&#91;2&#93;);//导演，编剧主演等详细信息<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//print_r($out3);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach($out3&#91;1&#93; as $key=&gt;$value)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$trimmed = trim($value, &quot;: &lt;br&gt;&quot;);//去掉又名的:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$trimmed = trim($trimmed, &quot;:&quot;);//去掉其他的:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $key = array_search(&quot;制片国家/地区&quot;,$movie_filed);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo $key;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$pos = array_search($trimmed,$movie_filed);//html中的其中一个元素和我们的movie_filed对照看是否在<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($pos != NULL)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//html中的一个元素在html数组中的键值key,自己定义的键值为pos<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!empty($out3&#91;2&#93;&#91;$key&#93;))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//echo $dba_film_fild&#91;$pos&#93;.&quot;==&gt;&quot;.strip_tags($out3&#91;2&#93;&#91;$key&#93;).&quot;&lt;br&gt;&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//数据库名称==&gt;对应分析数据<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(strstr(strip_tags($out3&#91;2&#93;&#91;$key&#93;),&quot;/&quot;) != false)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $out3&#91;2&#93;&#91;$key&#93; = trim($out3&#91;2&#93;&#91;$key&#93;, &quot;:&quot;);//去掉最前面的:号<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $out3&#91;2&#93;&#91;$key&#93;=str_replace(array(&quot;:&quot;),&quot;&quot;,strip_tags($out3&#91;2&#93;&#91;$key&#93;));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $film_all_info&#91;$dba_film_fild&#91;$pos&#93;&#93;=explode(&quot; /&quot;,strip_tags($out3&#91;2&#93;&#91;$key&#93;));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;else&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$film_all_info&#91;$dba_film_fild&#91;$pos&#93;&#93;=strip_tags($out3&#91;2&#93;&#91;$key&#93;); //print_r($out3&#91;2&#93;);//导演，编剧主演等信息<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#125;<br/><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//插入数据库字段对应$dba_film_fild&#91;$key&#93;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//对imdb单独处理,由正则取imdb码<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$imdb_judge = strstr($value, &#039;imdb&#039;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($imdb_judge!=false)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$pat = &#039;/&lt;a(.*?)href=&quot;(.*?)&quot;(.*?)&gt;(.*?)&lt;&#92;/a&gt;/i&#039;;//匹配超链接正则<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;preg_match_all($pat, $imdb_judge, $m);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$film_all_info&#91;&quot;imdb&quot;&#93; =&nbsp;&nbsp;$m&#91;4&#93;&#91;0&#93;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/><br/><br/><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;preg_match(&quot;/otho&#92;.douban&#92;.com&#92;/mpic&#92;/(&#91;^&#92;&quot;&#93;*)&#92;.jpg&#92;&quot;/i&quot;,$str_temp, $out4);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$film_all_info&#91;&quot;play_img&quot;&#93;=$out4&#91;1&#93;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//print_r($out4);图片<br/><br/><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;preg_match(&quot;/&lt;div class=&#92;&quot;related_info&#92;&quot;&gt;.*?&lt;div class=&#92;&quot;indent&#92;&quot;&gt;(.*?)&lt;br&#92;/&gt;/i&quot;,$str_temp, $out6);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$film_all_info&#91;&quot;introduce&quot;&#93;=$out6&#91;1&#93;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//print_r($out6);//剧情简介<br/><br/><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;preg_match(&quot;/&lt;div class=&#92;&quot;indent&#92;&quot;&gt;&lt;a href=&#92;&quot;&#92;/movie&#92;/tag&#92;/.+&lt;div class=&#92;&quot;obss&#92;&quot;&gt;/i&quot;,$str_temp, $out7);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!empty($out7))//如果有标签不为空<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$pat = &#039;/&lt;a(.*?)href=&quot;(.*?)&quot;(.*?)&gt;(.*?)&lt;&#92;/a&gt;/i&#039;;//匹配超链接正则<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;preg_match_all($pat,&nbsp;&nbsp;$out7&#91;0&#93;, $tag);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//echo $out7&#91;0&#93;;//匹配标签<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$film_all_info&#91;&quot;tag&quot;&#93;=$tag&#91;4&#93;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//print_r($tag&#91;4&#93;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//print_r($film_all_info);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/><br/><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return $film_all_info;<br/><br/><br/><br/>&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;function insert($all_film_info)//插入数据库<br/>&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;$dsn=&quot;mysql:host=&quot;.$this-&gt;db_host.&quot;;port=&quot;.$this-&gt;db_port.&quot;;dbname=&quot;.$this-&gt;db_name;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$db = new PDO($dsn, $this-&gt;user, $this-&gt;password);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//print_r($all_film_info);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach($all_film_info as $key=&gt;$values)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$fileds&#91;&#93;=$key;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$content&#91;&#93;=&quot;&#039;&quot;.mysql_escape_string($values).&quot;&#039;&quot;;//以防相关的危害串mysql_escape_string<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$filed_separated = join(&quot;,&quot;, $fileds);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$fild_content = join(&quot;,&quot;, $content);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$query=&quot;insert into `&quot;.$this-&gt;table.&quot;` (&quot;.$filed_separated.&quot;) values (&quot;.$fild_content.&quot;)&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$insert_flag = $db-&gt;exec($query);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($insert_flag)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 1;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;else&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 0;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#125;<br/><br/><br/><br/>&nbsp;&nbsp;&#125;<br/><br/><br/>&nbsp;&nbsp;function&nbsp;&nbsp;judge_is_film($content)//判断是否是电影<br/>&nbsp;&nbsp;&#123;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;$flag1 = strstr($content, &quot;导演&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;$flag2 = strstr($content, &#039;编剧&#039;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;$flag3 = strstr($content, &#039;上映年度&#039;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;$flag4 = strstr($content, &#039;语言&#039;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;$flag4 = strstr($content, &#039;剧情简介&#039;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;var_dump($flag1);<br/>&nbsp;&nbsp;&nbsp;&nbsp;if($flag1==false)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;if($flag2==false)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;if($flag3==false)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;if($flag4==false)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;return 1;<br/>&nbsp;&nbsp;&#125;<br/>&#125;<br/>?&gt;<br/>&lt;?php<br/>&nbsp;&nbsp;$path=&quot;/home/xiangdong2/snatch/test&quot;; //test后面不能有/号<br/>&nbsp;&nbsp;$snatch=new snatch();<br/>&nbsp;&nbsp;$snatch-&gt;_setvalue($path);<br/>&nbsp;&nbsp;$movie_info = $snatch-&gt;opendir_analyse_insert();<br/><br/>?&gt;</div>
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post/1253/#blogcomment56041</link>
<title><![CDATA[[评论] 抓取豆瓣电影数据以及分析数据程序]]></title> 
<author>duanjianair &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Mon, 16 May 2011 18:00:23 +0000</pubDate> 
<guid>http://www.jackxiang.com/post/1253/#blogcomment56041</guid> 
<description>
<![CDATA[ 
	你好，看了你的文章我有一些问题想请教你，如果方便的话能交流一下吗？我的邮箱是：henansky@126.com，谢谢
]]>
</description>
</item>
</channel>
</rss>