zoukankan      html  css  js  c++  java
  • 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才解决,问题是有时候加就灵,有时候就没有。。。菜鸟语录
  • 相关阅读:
    百度统计
    类的成员函数指针和mem_fun适配器的用法
    使用RTTI为继承体系编写”==”运算符
    Linux组件封装(五)一个生产者消费者问题示例
    Linux组件封装(四)使用RAII技术实现MutexLock自动化解锁
    模板系列(一)模板的模板参数
    Linux组件封装(三)使用面向对象编程封装Thread
    Linux组件封装(二)中条件变量Condition的封装
    Linux组件封装(一)中互斥锁MutexLock的封装
    迭代器适配器(二)general inserter的实现
  • 原文地址:https://www.cnblogs.com/xuesen1995/p/4812878.html
Copyright © 2011-2022 走看看