使用phpquery采集小说
使用phpquery采集小说
说明
phpQuery是基于php5新添加的DOMDocument。而DOMDocument则是专门用来处理html/xml。它提供了强大xpath选 择器及其他很多html/xml操作函数,使得处理html/xml起来非常方便
步骤
- 先获取小说的列表页的a标签的链接
- 进入详情页获取标题和内容
- 输出txt到浏览器
代码地址
代码
<?php /** * Created by PhpStorm. * User: rex * Date: 2017/7/6 0006 * Time: 上午 11:32 */ include 'phpquery/phpQuery/phpQuery.php'; class Collection{private $url; //列表页链接private $sonUrl;//详情页链接private $list;//列表页的a链接所在位置private $titleTag;//详情页的标题标签private $conTag;//详情页内容所在标签private $br;//详情页的换行符private $delete;public function init(){$_GET['url'] ="http://www.bixia.org/59_59857/";$_GET['sonUrl'] = "http://www.bixia.org/59_59857";$_GET['list'] = ".box_con dl dd a";$_GET['titleTag'] = "h1";$_GET['conTag'] = "#content";$_GET['br'] = "<br>" ;$this->setVar();//处理参数header("Content-type: text/html; charset=utf-8");ini_set('date.timezone','Asia/Shanghai');set_time_limit(0);$this->coll();//开始采集}private function coll(){$mxUrl = $this->sonUrl;//采集小说章节链接phpQuery::newDocumentFile($this->url); //抓取网址//取出页面所有链接排序$arr=pq($this->list); //pq类似于jquery的选择器$(),这里找到class为postTitle的元素$list = array();foreach($arr as $li){$list[] = pq($li)->attr('href');}// sort($list);//对a标签排序$result = '';foreach($list as $k=>$v){//采集详情页$html = file_get_contents($mxUrl.$v);//处理编码为空的情况if( strpos($html,'charset="')){$html = iconv("gb2312", "utf-8//IGNORE",$html);}//创建phpquery对象phpQuery::newDocument($html);//获取title$title = pq($this->titleTag)->text();//获取内容$con = pq($this->conTag)->html();//替换html换行为txt文本换行$con = str_replace($this->br,"\r\n",$con);$result .= $title."\r\n";$result .= $con."\r\n";echo $title.'组装完成<br>'; }//把txt文本输出txt下载$filename=time().'.txt';//要导出的文件的文件名需要加上文件后缀header('Content-Type: text/x-sql');header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');header('Content-Disposition: attachment; filename="' .$filename. '"');$is_ie = 'IE';if ($is_ie == 'IE') {header('Cache-Control: must-revalidate, post-check=0, pre-check=0');header('Pragma: public');} else {header('Pragma: no-cache');header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');}echo $result;exit();}private function setVar(){$this->url = $this->isValidUrl($_GET['url'])==false ? '' : $_GET['url'];if($this->url=='') echo "<script> alert('url错误') </script>";$this->sonUrl = $_GET['sonUrl'];$this->list = $_GET['list'];$this->titleTag = $_GET['titleTag'];$this->conTag = $_GET['conTag'];$this->br = $_GET['br'];}public function isValidUrl($url) {$patern = '/^http[s]?:\/\/'.'(([0-9]{1,3}\.){3}[0-9]{1,3}'. // IP形式的URL- 199.194.52.184'|'. // 允许IP和DOMAIN(域名)'([0-9a-z_!~*\'()-]+\.)*'. // 三级域验证- www.'([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\.'. // 二级域验证'[a-z]{2,6})'. // 顶级域验证.com or .museum'(:[0-9]{1,4})?'. // 端口- :80'((\/\?)|'. // 如果含有文件对文件部分进行校验'(\/[0-9a-zA-Z_!~\*\'\(\)\.;\?:@&=\+\$,%#-\/]*)?)$/';if(!preg_match($patern, $url)) {return false;}else{return true;}} } $coll = new Collection(); $coll->init();
使用phpquery采集小说相关推荐
- python自动生成采集规则_【仅供学习参考】Python多线程池采集小说,超简单!
[Python] 纯文本查看 复制代码#采集小说lingdiankanshu.co import requests from lxml import etree from multiprocessin ...
- 轻量级简约的自动采集小说程序源码
正文: 轻量级简约的自动采集小说程序源码,全程序自动采集,更新提示:已经更新采集规则. 安装环境: 1.Nginx环境 2.php7.0,mysql 3.宝塔服务器 4.正常的域名 安装教程: 1. ...
- ptcms模板自动采集小说系统源码
介绍: ptcms模板自动采集小说系统源码安装教程: mysql,php5.6 必须安装扩展:ZendGuardLoader 脚本解密 ionCube 脚本解密 fileinfo 通用扩展 opcac ...
- java爬虫实时采集小说+springboot推荐算法+实现在线小说免费阅读推荐系统
总结,本文从系统建设涉及到的技术介绍到框架搭建,对系统涉及到的商品推荐算法给出了详细的设计流程及核心代码块,从整体上完成了本应用商品推荐系统的开发过程. 如何针对互联网各大小说阅读网站的小说数据进行实 ...
- php采集网页,phpQuery采集网页实现代码实例
前言 平时开发中可能遇到一个问题.采集网页,小偷程序等等.各种花式秀正则的话,虽然能体现出geek,但是我觉得做事却不够优雅.采集到的网页说白了也是DOM,jQuery各种优雅地获取节点.幸好,有这个 ...
- python采集小说网站完整教程(附完整代码)
python 采集网站数据,本教程用的是scrapy蜘蛛 1.安装Scrapy框架 命令行执行: pip install scrapy 安装的scrapy依赖包和原先你安装的其他python包有冲突话 ...
- Python采集--小说一键保存txt文本
前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 不知道在什么时候,我们学生时代的电脑桌面上流传起了一个个TXT文本 噢~那是一本本的小说,那这究竟是怎么实现的效果呢? 就让我用文章带你实现吧~ 完整源码 ...
- 使用Python3采集小说网站
最近使用python3 的 requests 的库,看了下官网的基本教材,及其简单.及其强大. 看完了教程自然就要上手练习了,这次练习就以小说网站为目标.小说网站简单,包含文字和图片,量也大. 1. ...
- 全自动采集小说模板源码+送7条可用7大采集规则
程序特色: 1.小说自动采集: 2.小说章节实时更新: 3.采集的小说入库,不受源站影响: 4.高效储存模式,节约服务器空间使用: 程序优点: 1.小说自动推送到百度搜索引擎,加快页面收录: 2.页面 ...
- 全自动php采集插件下载,phpquery采集插件下载
phpQuery是一个基于PHP的服务端开源项目,它可以让PHP开发人员轻松处理DOM文档内容,比如获取某新闻网站的头条信息.更有意思的是,它采用了jQuery的思想,你可以像使用jQuery一样处理 ...
最新文章
- Linux tcpdump命令详解与Wireshark
- three.js 贴图只显示颜色_C4D作品“花里胡哨”?我怀疑你贴图方式有问题……
- C 语言编程 — 宏定义与预处理器指令
- CTF web题总结--上传文件绕过
- java c 基本类型_java 基本数据类型
- 双向链表(带头结点)
- githubRank: Github 项目和用户排行榜
- 阿里云罗庆超:我为什么写《对象存储实战指南》这本书
- VMware15.5.2安装unlocker时下载工具一直失败
- teechart的addarray_TeeChart经验总结 6.Series之1:Line
- 人用药品注册技术规定国际协调会议(ICH)
- 使用云开发实现微信支付的具体方法
- 深度学习面试题集锦【1】
- vue2引入ionicons图标
- mysql 5.7.25 中文全文检索(多个字段联合索引)
- win10彻底关闭自动更新
- 倒计时7天丨2022全球边缘计算大会深圳站参会指南来啦!
- 同花顺面经(二面挂)
- Windows环境下的视图之间切换快捷键及几个常用快捷键
- imx6ull移植Linux系统第二篇——Linux内核的移植