使用phpquery采集小说

  1. 说明

    phpQuery是基于php5新添加的DOMDocument。而DOMDocument则是专门用来处理html/xml。它提供了强大xpath选 择器及其他很多html/xml操作函数,使得处理html/xml起来非常方便

  2. 步骤

    1. 先获取小说的列表页的a标签的链接
    2. 进入详情页获取标题和内容
    3. 输出txt到浏览器
  3. 代码地址

  4. 代码

    <?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采集小说相关推荐

  1. python自动生成采集规则_【仅供学习参考】Python多线程池采集小说,超简单!

    [Python] 纯文本查看 复制代码#采集小说lingdiankanshu.co import requests from lxml import etree from multiprocessin ...

  2. 轻量级简约的自动采集小说程序源码

    正文: 轻量级简约的自动采集小说程序源码,全程序自动采集​,更新提示:已经更新采集规则. 安装环境: 1.Nginx环境 2.php7.0,mysql 3.宝塔服务器 4.正常的域名 安装教程: 1. ...

  3. ptcms模板自动采集小说系统源码

    介绍: ptcms模板自动采集小说系统源码安装教程: mysql,php5.6 必须安装扩展:ZendGuardLoader 脚本解密 ionCube 脚本解密 fileinfo 通用扩展 opcac ...

  4. java爬虫实时采集小说+springboot推荐算法+实现在线小说免费阅读推荐系统

    总结,本文从系统建设涉及到的技术介绍到框架搭建,对系统涉及到的商品推荐算法给出了详细的设计流程及核心代码块,从整体上完成了本应用商品推荐系统的开发过程. 如何针对互联网各大小说阅读网站的小说数据进行实 ...

  5. php采集网页,phpQuery采集网页实现代码实例

    前言 平时开发中可能遇到一个问题.采集网页,小偷程序等等.各种花式秀正则的话,虽然能体现出geek,但是我觉得做事却不够优雅.采集到的网页说白了也是DOM,jQuery各种优雅地获取节点.幸好,有这个 ...

  6. python采集小说网站完整教程(附完整代码)

    python 采集网站数据,本教程用的是scrapy蜘蛛 1.安装Scrapy框架 命令行执行: pip install scrapy 安装的scrapy依赖包和原先你安装的其他python包有冲突话 ...

  7. Python采集--小说一键保存txt文本

    前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 不知道在什么时候,我们学生时代的电脑桌面上流传起了一个个TXT文本 噢~那是一本本的小说,那这究竟是怎么实现的效果呢? 就让我用文章带你实现吧~ 完整源码 ...

  8. 使用Python3采集小说网站

    最近使用python3 的 requests 的库,看了下官网的基本教材,及其简单.及其强大. 看完了教程自然就要上手练习了,这次练习就以小说网站为目标.小说网站简单,包含文字和图片,量也大. 1. ...

  9. 全自动采集小说模板源码+送7条可用7大采集规则

    程序特色: 1.小说自动采集: 2.小说章节实时更新: 3.采集的小说入库,不受源站影响: 4.高效储存模式,节约服务器空间使用: 程序优点: 1.小说自动推送到百度搜索引擎,加快页面收录: 2.页面 ...

  10. 全自动php采集插件下载,phpquery采集插件下载

    phpQuery是一个基于PHP的服务端开源项目,它可以让PHP开发人员轻松处理DOM文档内容,比如获取某新闻网站的头条信息.更有意思的是,它采用了jQuery的思想,你可以像使用jQuery一样处理 ...

最新文章

  1. Linux tcpdump命令详解与Wireshark
  2. three.js 贴图只显示颜色_C4D作品“花里胡哨”?我怀疑你贴图方式有问题……
  3. C 语言编程 — 宏定义与预处理器指令
  4. CTF web题总结--上传文件绕过
  5. java c 基本类型_java 基本数据类型
  6. 双向链表(带头结点)
  7. githubRank: Github 项目和用户排行榜
  8. 阿里云罗庆超:我为什么写《对象存储实战指南》这本书
  9. VMware15.5.2安装unlocker时下载工具一直失败
  10. teechart的addarray_TeeChart经验总结 6.Series之1:Line
  11. 人用药品注册技术规定国际协调会议(ICH)
  12. 使用云开发实现微信支付的具体方法
  13. 深度学习面试题集锦【1】
  14. vue2引入ionicons图标
  15. mysql 5.7.25 中文全文检索(多个字段联合索引)
  16. win10彻底关闭自动更新
  17. 倒计时7天丨2022全球边缘计算大会深圳站参会指南来啦!
  18. 同花顺面经(二面挂)
  19. Windows环境下的视图之间切换快捷键及几个常用快捷键
  20. imx6ull移植Linux系统第二篇——Linux内核的移植

热门文章

  1. 聚类分析用matlab还是spass,利用Matlab和SPSS软件实现聚类分析
  2. lena图像,直方图均衡
  3. 【浅谈】日文的文本等出现乱码的情况以及解决办法
  4. 高频逆变器有什么优缺点?它有哪些分类?-道合顺大数据Infinigo
  5. Unity播放服务器端视频 发布到Android移动端
  6. 机器学习如何帮助Caesars大涨邮件绩效
  7. mysql java驱动 ibm_各种数据库的jdbc驱动下载及连接方式
  8. Unity3D Odin Inspector 简单介绍与入门
  9. Ubuntu下安装UDK
  10. Web端轻松实现音视频聊天通话