学习了别人的爬虫后自己改的一个,算是又回顾了一下php的使用
我们来利用simple_html_dom的采集数据实例,这是一个PHP的库,上手很容易。
simple_html_dom 可以很好的帮助我们利用php解析html文档。通过这个php封装类可以很方便的解析html文档,对其中的html元素进行操作 (PHP5+以上版本)
下载地址:https://github.com/samacs/simple_html_dom
还是http://paopaotv.com/tv-type-id-5-pg-1.html 这个字母版面 1 <?php
2 set_time_limit(0); 3 header("Content-Type:text/html;charset=utf-8"); 4 require('../../web crawler/simple_html_dom-master/simple_html_dom.php'); 5 require './config.php'; 6 $DBNA="crawler"; 7 mysql_select_db($DBNA,$link); 8 //获取html数据转化对象 9 $html = file_get_html('http://paopaotv.com/tv-type-id-5-pg-1.html'); 10 11 //A-Z的字母列表每条数据是在id=letter-focus的div内class=letter-focus=item的 12 //dl标签内,用find方法查找即为 13 $ListData = $html->find("#letter-focus .letter-focus-item"); 14 //$listData为数组对象 15 $count=0; 16 foreach($ListData as $key=>$EachLetterData){ 17 $LetterData = $EachLetterData->find("dd a"); 18 foreach ($LetterData as $Letterinfo){ 19 $count++; 20 //影片名称 21 $filmName = $Letterinfo->plaintext; 22 //echo "<br/>"; 23 //影片地址 24 $filmUrl = $Letterinfo->href; 25 $filmUrl="http://www.paopaotv.com".$filmUrl; 26 //echo "<br/>"; 27 //一部影片的地址内容 28 $filmInfo = file_get_html($filmUrl); 29 //所找信息 30 $filmDetail = $filmInfo->find(".info dl"); 31 foreach($filmDetail as $film){ 32 $info = $film->find("dd"); 33 foreach($info as $childinfo){ 34 $row[] = $childinfo->plaintext; 35 } 36 } 37 $sql = "insert into movie2(name,url,actor,status,form,location,label,director,time,year) values('{$filmName}','{$filmUrl}', 38 '{$row[0]}','{$row[1]}','{$row[2]}','{$row[3]}','{$row[4]}','{$row[5]}','{$row[6]}','{$row[7]}')"; 39 echo "<pre>"; 40 echo $sql."<br/>"; 41 mysql_query($sql); 42 $row=null; 43 //if($count==3){goto a;} 44 echo "<br/>"; 45 } 46 //echo "<br/>"; 47 } 48 a:
关于自己遇到的问题:
字符编码的问题,uft-8又一次坑了我,之后在config.php中加了set names uft8才解决,问题是有时候加就灵,有时候就没有。。。菜鸟语录