PHP电影小爬虫(2)

学习了别人的爬虫后自己改的一个,算是又回顾了一下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才解决,问题是有时候加就灵,有时候就没有。。。菜鸟语录
原文地址:https://www.cnblogs.com/xuesen1995/p/4812878.html