教你如何快速开发一个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标签下影视对应的地址
//获取影视的详细信息
// 查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/webkf/PHP/
$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);

更多用法可以参考官方手册。

是不是很简单呢?有问题欢迎提出来交流

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索文档
, html
, php
, 爬虫
, webmagic 爬虫
, 一个
, php爬虫代码
, php实现网络爬虫
, php爬虫
, Java豆瓣电影爬虫
, php反爬虫策略
, 小爬虫
, simple_html_dom
爬虫实例
swoole开发 php爬虫、php开发爬虫、php快速开发框架、php快速开发平台、php快速开发,以便于您获取更多的相关知识。

时间: 2024-10-31 04:19:03

教你如何快速开发一个PHP电影爬虫的相关文章

快速开发一个PHP扩展图文教程_php实例

需求:比如开发一个叫做 heiyeluren 的扩展,扩展里就一个函数 heiyeluren_test(),输入一个字符串,函数返回:Your input string: xxxxx. 要求:了解C/C++编程,熟悉PHP编程 环境:下载一份php对应版本的源码,我这里是 php-5.2.6,先正常安装php,假设我们的php安装在 /usr/local/php 目录,源码在 /root/soft/php/php-5.2.6/,现在开始!步骤一:生成扩展框架 cd /root/soft/php/

教你如何快速搭建一个免费的SeedBox系统(一)

中介交易 SEO诊断 淘宝客 云主机 技术大厅 这个教程分为几部,首先我们来了解下概念性的东西: 什么是 PT:相信大家对BT这个东东非常熟悉了,其实PT跟BT差不多,也是BT下载的一种,和BT下载有两个最明显的不同,即私密的小范围下载和进行流量统计.PT下载是一种小范围的BT下载,通过禁用DHT,有要求地选择并控制用户数量.这样,在有限的范围内,下载的用户基本都可以达到自己带宽的上限.PT下 载还通过论坛制度的约束机制将BT的设计理念现实化,真正让用户做到下载的过程中努力上传.因此,PT下载的

美橙互联教你5分钟快速搭建一个微餐饮网站

伴随着移动互联网的快速发展.智能手机的普及,生活中诞生了一类新的族群:低头族.数据显示,3721.html">2014年上半年,我国网民每周人均手机上网时长约12小时,八成手机网民每天至少使用手机上网1次,近六成手机网民每天使用手机上网多次. "低头族"越发壮大,改变的不止是人们的消费习惯,也为移动餐饮行业的营销推广服务等各方面留下诸多空白点.传统餐饮商家只有抓住新的变革机遇,善用互联网思维和工具开启微餐饮,才能突破传统营销与服务,开创经营新模式. 那么,如何搭建一个微

如何开发一个多种语言版本的C#程序

程序 在C#中有多种使用资源文件的方法,能够很方便地开发全球通用的应用程序.本文通过一个简单的小例子,来讲解在C#中如何利用资源文件,快速开发一个多种语言版本的程序.本例中只有一个窗体,三个控件,能够根据用户的设置以中文或英文界面运行.开发环境是Windows 2000 Professional.Microsoft Visual Studio.NET 2002.具体开发步骤如下: 一.新建项目 启动Microsoft Visual Studio .NET,新建一个C#项目MyApp,本例工程存放

如何快速开发网站?

开发网站 ,一般是如下过程: 找美工画图 进行图片切分 开发人员添加内容 现在还用JSP来做网页,当然属于...那啥的事情. 今天看看不一样的体验,稍有HTML基础,马上就可以照葫芦画瓢了. 第一步:找美工画图,第二步图片切分 这两步合成一步,到网上找模板,假设我们就看上这个模板了. http://www.cssmoban.com/cssthemes/88.shtml 点击下面的地址http://down.cssmoban.com/cssthemes/dating-web-template-5.

JAAS之快速开发JBOSS自定义认证

      在企业应用中,认证是一个很常见的需求,而在J2EE项目中,认证登录大致有两种方式来实现:       一种是通过过滤器来拦截请求控制登录与权限,另外一种方式就是适用JAAS, 今天就简单介绍下使用JAAS快速开发一个JBOSS的自定义认证. 一.环境准备工作: 1.1 一个部署的war包,包内应当配置资源保护,和启用JAAS验证.   WEB-INF中web.xml 中配置资源保护 示例:           <security-constraint>  <web-resou

如何开发一个产品级的Node.js 应用

介绍 Node.js是一个开源的javascript运行时环境.非常简单可以快速开发一个网络应用.这个平台运行在Linux.OSX和Windows,而且运行在这个平台上的应用都是用javascript写的.Node.js的应用可以使用命令行启动,但是这里我们主要介绍的是作为一个服务运行,这样在电脑重启或者出问题之后可以重新运行起来,这是在产品环境下需要的. 本文会介绍如何使用两台Ubuntu14.04服务器建立一个Node.js的产品环境.一个服务器运行PM2管理下的Node.js应用.另一台运

spring boot 搭建的一个企业级快速开发脚手架

slife spring boot 搭建的一个企业级快速开发脚手架. 这本来是我自己平时测试用的项目,没打算开源. 但今天放到 开源中国 和 GitHub 没想到会被 码云设置为推荐项目.并且还上了今日热门项目 第一名 联系方式 qq群 421351927 項目地址https://gitee.com/jamen/slife 技术栈 Spring Boot MySQL Freemark SiteMesh Shiro Boostrapt mybatis.mybatisPlus redis Activ

Grails一个适合快速开发的web开源框架

本文将介绍一种更为通用的封装方案,该方案中通过组合使用 dojo.Stateful.dojo.xhr.dojo.Deferred 等常用类及方法,使开发者用一种面向对象的.简单透明的方式,实现客户端与 REST 风格的 API 之间的同步或者异步的交互. 本文将使用 Dojo 1.7 并遵循 AMD 的规范,设计并实现与 REST API 交互的 Web 前端http://www.aliyun.com/zixun/aggregation/14208.html">数据模型. 准备工作 安装