今天来做一个PHP电影小爬虫。

今天来做一个PHP电影小爬虫。
我们来利用simple_html_dom的采集数据实例,这是一个PHP的库,上手很容易。
simple_html_dom 可以很好的帮助我们利用php解析html文档。通过这个php封装类可以很方便的解析html文档,对其中的html元素进行操作 (PHP5+以上版本)
下载地址:https://github.com/samacs/simple_html_dom
下面我们以 http://www.paopaotv.com 上的列表页 http://paopaotv.com/tv-type-id-5-pg-1.html 字母模式展现的列表为例,抓取页面上的列表数据,以及内容里面信息

 1 <?php
 2 include_once ‘simple_html_dom.php‘;
 3 //获取html数据转化为对象
 4 $html = file_get_html(‘http://paopaotv.com/tv-type-id-5-pg-1.html‘);
 5 //A-Z的字母列表每条数据是在id=letter-focus 的div内class= letter-focus-item的dl标签内,用find方法查找即为
 6 $listData=$html->find("#letter-focus .letter-focus-item");//$listData为数组对象
 7 foreach($listData as$key=>$eachRowData){
 8 $filmName=$eachRowData->find("dd span",0)->plaintext;//获取影视名称
 9 $filmUrl=$eachRowData->find("dd a",0)->href;//获取dd标签下影视对应的地址
10 //获取影视的详细信息
11 $filmInfo=file_get_html("http://paopaotv.com".$filmUrl);
12 $filmDetail=$filmInfo->find(".info dl");
13 foreach($filmDetail as $film){
14 $info=$film->find("dd");
15 $row=null;
16 foreach($info as $childInfo){
17 $row[]=$childInfo->plaintext;
18 }
19 $cate[$key][]=join(",",$row);//将影视的信息存放到数组中
20 }
21 }

这样通过simple_html_dom,就可以将paopaotv.com影视列表中信息,以及影视的具体信息就抓取到了,之后你可以继续抓取影视详细页面上的视频地址信息,然后将该影视的所有信息都存放到数据库中。
下面是simple_html_dom常用的属性以及方法:

 1 $html = file_get_html(‘http://paopaotv.com/tv-type-id-5-pg-1.html‘);
 2 $e = $html->find("div", 0);
 3 //标签
 4 $e->tag;
 5 //外文本
 6 $e->outertext;
 7 //内文本
 8 $e->innertext;
 9 //纯文本
10 $e->plaintext;
11 //子元素
12 $e->children ( [int $index] );
13 //父元素
14 $e->parent ();
15 //第一个子元素
16 $e->first_child ();
17 //最后一个子元素
18 $e->last_child ();
19 //后一个兄弟元素
20 $e->next_sibling ();
21 //前一个兄弟元素
22 $e->prev_sibling ();
23 //标签数组
24 $ret = $html->find(‘a‘);
25 //第一个a标签
26 $ret = $html->find(‘a‘, 0);

原文:http://www.cnblogs.com/blueel/p/3756446.html

时间: 2024-10-03 20:25:01

今天来做一个PHP电影小爬虫。的相关文章

豆瓣电影小爬虫

很早前就想用 Golang 写点"实用的"东西,兴趣不是目的,学总归要致用.而<Go语言圣经>中有一些例子比较有实际意义,譬如爬虫. 刚好我对电影还比较有兴趣,且习惯性地在下或看某部电影前都会去豆瓣看看评分,所以我想,何不撸个小爬虫,来遍历豆瓣的所有电影页面以采集电影信息并按评分由高到低来排个序看看有哪些高评分电影我还没看过呢? 趁自己不瞎忙,索性撸起来. 代码实现基本上还是参考圣经里的那套.而作为爬虫,自然免不了要引入 goquery 这样的三方库,只是我还不熟 jQue

做一个自己的小Linux

实战操作自制一个小Linux 概述:通过前面的系统启动流程,我们大致知道了Linux系统启动时都需要哪些文件和步骤,知道了这些理论内容,现在我们可以自己动手制作一个自己的小Linux. 实践步骤: 1.在已有的Linux添加新的硬盘 2.对此新的硬盘进行分区,两个分区分别为/boot和/分区( 为自制的Linux下所准备的) 3.将刚刚的分区格式化并挂载至两个目录上(我这里为/mnt/boot和/mnt/sysroot) 4.在此新硬盘上安装grub并且编写grub配置文件 5.将vmlinuz

利用爬虫做一个自己的小词典

GUI from tkinter import Entry, Label, Button, Text from tkinter import Tk window = Tk() window.title(u'拂髯客词典') window.geometry("280x350+500+200") entry = Entry(window) entry.place(x=10,y=10,width=200,height=25) button = Button(window, text=u&quo

从零开始写个一个豆瓣电影 (小程序教程1)

微信小程序内测至今也有20天左右,也有很多人作出了很多不错的DEMO并发布到github了.前几日看见了豆瓣电影这个demo,感觉很不错,也跟着做了一个,作为复习巩固文档API用. 废话不多说,直接进入正题: 第一节只写一个首页的展示,数据用的是自己写的虚拟的数据 新建一个demo,不要使用微信自带的DEMO,直接从零开始写起: 首先创建3个文件: app.json app.js apps.wxss app.json  : 主要写配置项:内容如下,具体的每个key值对应的意思,这里就不再细说了,

做一个开源的小程序登录模块组件(token)

先了解下SSO 对于单点登陆浅显一点的说就是两种,一种web端的基于Cookie.另一种是跨端的基于Token,一般想要做的都优先做Token吧,个人建议,因为后期扩展也方便哦. 小程序也是呢,做成token的形式是较好的. 流程图 PS:图中4的文字打错了~ 1.启动服务 2.小程序初次加载app.js校验token,使用code去换取token 3.检测User信息是否存在code,不存在则注册新用户,最后返回对应用户Id 4.将随机Token与UserId一起存入Redis中 5.返回To

canvas学习作业,模仿做一个祖玛的小游戏

这个游戏的原理我分为11个步骤,依次如下: 1.布局, 2.画曲线(曲线由两个半径不同的圆构成) 3.画曲线起点起始圆和曲线终点终止圆 4.起始的圆动起来, 5.起始的圆沿曲线走起来 6.起始的圆沿曲线走起来,并在曲线初始位置处产生新圆 7.添加图片,这个图片是为了发射子弹 8.让图片跟随鼠标动起来 9.让动起来的图片跟随鼠标的位置发送子弹,并让子弹的颜色变红 10.图片发射的子弹和轨迹上的小圆碰撞检测 11.碰撞检测后让发射的子弹和轨迹上的小圆消失 这就是该程序步骤的的分解. 第一点:布局 <

html5面向对象做一个贪吃蛇小游戏

canvas加面向对象方式的贪吃蛇 2016-08-25 这个小游戏可以增加对面向对象的理解,可以加强js逻辑能力,总之认真自己敲一两遍收获还是不少啊!!适合刚学canvas的同学练习!! 废话不多说,直接来讲思路和代码. ----------------------------------------------------------------------------------------------------------------- 开发思路:首先要有蛇吃的食物,就是一个个canv

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

跟我一起做一个vue的小项目(四)

接下来我们进行的是轮播页面下面的导航页的开发 我们需要的是实现轮播页下面的图标,并且实现轮播效果 这个话,其实基本思路先是渲染出小图标,然后,我们要对页数进行判断,如果图标的个数展示的就是8个,那个这个就是一页轮播 如果大于8个,我们要计算是显示几个轮播页.再根据这个轮播页我们去渲染的数据 //icons.vue <template> <div class="icons"> <swiper> <!-- 这个是轮播的页数 --> <s