快速开发一个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 字母模式展现的列表为例,抓取页面上的列表数据,以及内容里面信息
<?php
include_once 'simple_html_dom.php';
//获取html数据转化为对象
$html = file_get_html('http://paopaotv.com/tv-type-id-5-pg-1.html');
//A-Z的字母列表每条数据是在id=letter-focus 的div内class= letter-focus-item的dl标签内,用find方法查找即为
$listData=$html->find("#letter-focus .letter-focus-item");//$listData为数组对象
foreach($listData as$key=>$eachRowData){
$filmName=$eachRowData->find("dd span",0)->plaintext;//获取影视名称
$filmUrl=$eachRowData->find("dd a",0)->href;//获取dd标签下影视对应的地址
//获取影视的详细信息
$filmInfo=file_get_html("http://paopaotv.com".$filmUrl);
$filmDetail=$filmInfo->find(".info dl");
foreach($filmDetail as $film){
$info=$film->find("dd");
$row=null;
foreach($info as $childInfo){
$row[]=$childInfo->plaintext;
}
$cate[$key][]=join(",",$row);//将影视的信息存放到数组中
}
}
这样通过simple_html_dom,就可以将paopaotv.com影视列表中信息,以及影视的具体信息就抓取到了,之后你可以继续抓取影视详细页面上的视频地址信息,然后将该影视的所有信息都存放到数据库中。
下面是simple_html_dom常用的属性以及方法:
$html = file_get_html('http://paopaotv.com/tv-type-id-5-pg-1.html');
$e = $html->find("div", 0);
//标签
$e->tag;
//外文本
$e->outertext;
//内文本
$e->innertext;
//纯文本
$e->plaintext;
//子元素
$e->children ( [int $index] );
//父元素
$e->parent ();
//第一个子元素
$e->first_child ();
//最后一个子元素
$e->last_child ();
//后一个兄弟元素
$e->next_sibling ();
//前一个兄弟元素
$e->prev_sibling ();
//标签数组
$ret = $html->find('a');
//第一个a标签
$ret = $html->find('a', 0);
更多用法可以参考官方手册。
是不是很简单呢?有问题欢迎提出来交流
快速开发一个PHP电影爬虫的更多相关文章
- 使用.NET Core快速开发一个较正规的命令行应用程序
程序员的世界,命令行工具一直是"体验非常友好"的工具,也能自动化完成很多事情,同时还能结合shell来进行某项任务的批处理(脚本).在.NET Core中,命令行应用程序是基础,但 ...
- 如何快速开发一个支持高效、高并发的分布式ID生成器
ID生成器是指能产生不重复ID服务的程序,在后台开发过程中,尤其是分布式服务.微服务程序开发过程中,经常会用到,例如,为用户的每个请求产生一个唯一ID.为每个消息产生一个ID等等,ID生成器也是进行无 ...
- 快速开发一个PHP扩展
快速开发一个PHP扩展 作者:heiyeluren时间:2008-12-5博客:http://blog.csdn.net/heiyeshuwu 本文通过非常快速的方式讲解了如何制作一个PHP 5.2 ...
- 基于django快速开发一个网站(一)
基于django快速开发一个网站(一) * 创建虚拟环境.基于虚拟环境创建django==2.0.0和图片加载库和mysql数据库驱动 1. 创建目录并创建虚拟环境 ╰$ mkdir Cornuco ...
- 使用Vue2+webpack+Es6快速开发一个移动端项目,封装属于自己的jsonpAPI和手势响应式组件
导语 最近看到不少使用vue制作的音乐播放器,挺好玩的,本来工作中也经常使用Vue,一起交流学习,好的话点个star哦 本项目特点如下 : 1. 原生js封装自己的跨域请求函数,支持promise调用 ...
- 有了 serverless,前端也可以快速开发一个 Puppeteer 网页截图服务
更多云原生技术资讯可关注阿里巴巴云原生技术圈. Puppeteer 是什么? puppeteer 官网的介绍如下: Puppeteer is a Node library which provides ...
- 用 Go 快速开发一个 RESTful API 服务
何时使用单体 RESTful 服务 对于很多初创公司来说,业务的早期我们更应该关注于业务价值的交付,而单体服务具有架构简单,部署简单,开发成本低等优点,可以帮助我们快速实现产品需求.我们在使用单体服务 ...
- Django实战总结 - 快速开发一个数据库查询工具
一.简介 Django 是一个开放源代码的 Web 应用框架,由 Python 写成. Django 只要很少的代码就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的 Web 服务 ...
- 两天快速开发一个自己的微信小程序
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Songti SC" } p.p2 { margin: 0.0px 0. ...
随机推荐
- 【Fine原创】常见的HTTP错误码的具体含义整理
常见的HTTP错误码的具体含义 "100" : Continue 客户端应当继续发送请求. "101" : witching Protocols ...
- MVC 架构
MVC 模式是一种严格实现应用程序个部分隔离的框架模式.这种"隔离"也叫"分离关注点" 通俗名称:"松耦合" 松耦合的应用程序价格设计方式, ...
- 在同台电脑上再次安装MySql需要注意的事项
今天安装了一下mysql,出现的问题主要是在最后一步: msyql 安装到最后一步 start service 错误解决方法 1, 到控制面板里面先把 mysql 删除 . 2. 到 c 盘 C:\P ...
- SQL函数创建错误
[Err] 1418 - This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration a ...
- Meta http-equiv的属性详解 来自wanglehui
Meta http-equiv 语法标签格式:<meta http-equiv="参数" content="参数值"> 1."过期时间&q ...
- SQL组合查询的存储过程写法
最进一个项目 里面有个查询的功能,它是进行组合查询的, 而且用的是存储过程写.写这样的存储过程,需要注意单引号的使用,请看本人下面的例子,假如你以后写的话 记得注意写就行: create proc s ...
- 毛毛虫学习日记_SQL
五毛叶的SQL学习: 1.SELECT:(A 表名,a 字段) SELECT A.b, C.c , D.d(a,b,c,d,e...各种自己需要的字段) FROM A(中心表名) LEFT /INN ...
- Apache常用配置项
301是永久重定向 302是临时重定向 编辑虚拟主机的配置文件需要用到apache的rewrite模块 所以要用要先检查apache是否安装了rewrite模块 # ./bin/apachectl - ...
- Servlet 3.0 异步模式
Servlet 3.0标准新增了异步处理的支持. 进行异步处理的Servlet和作用于该Servlet的拦截器都必须声明对于异步处理的支持.
- AJAX 的简单用法:
AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. AJAX 是一种用于创建快速动态网页的技术.通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以 ...