http://book.sina.com.cn/nzt/lit/zhuxian2/index.shtml";// 图书地址

有了上边讲的,现在应该可以完全写出来了,开始代码:

//****************************************************************

$url = "http://book.sina.com.cn/nzt/lit/zhuxian2/index.shtml";// 图书地址

$ver = "old"; //新旧版本

//因为图书他的页面又两种板式,所以我们要在这里区别一下

//****************************************************************

// 获取页面代码 file_get_contents() 把文件读入一个字符串,下边的时候需要用到

$r = file_get_contents($url);

//在上边获取的字符串中搜索标题,并赋值给变量$booktitle,$booktitle是数组,/is就凑活理解成开始吧!

preg_match("//is",$r,$booktitle);

//把第一个出现捕获的标题赋值给变量bookname。

$bookname = $booktitle[1]; //书名

//print_r ($booktitle);die();不理解的输出这个看看,嘿嘿,帮助大家理解

/*************************************************************************************

*原形:

第四十五章  伤痛(1)

*规律是:

不固定

*ISU是正则的一种模式,该模式是非贪婪模式,也就是说只要匹配上就结束

*************************************************************************************/

$preg = '/

/isU';

/********************************************************************************

*preg_match_all进行全局正则表达式匹配

*原形:

*

int preg_match_all

*

( string pattern, string subject, array matches [, int flags] )

*意思是:在全局搜索资源变量$preg,得到一个数组赋值给一个变量$zj,这个变量也就是数组了。

*取得其中的资源的时候用标示就可以,不会的看下数组哦!

*汪老师说了,不会数组的给我出去啃书,什么时候会了进来

**********************************************************************************/

preg_match_all($preg, $r, $zj);

//print_r ($zj);die();不理解的输出这个看看,嘿嘿,帮助大家理解

// 计算标题数量,我是问了最后提示大家看又多少章节,采集了多少

$bookzj = count($zj[1]);

//判断你要采集的板式是那种哦,因为内容开始不一样哦,其实可以自动判断的,我也写成了,但是不发布,因为很简单

if ($ver=="new"){

$content_start = "";

$content_end = "";

}

if ($ver=="old"){

$content_start = "";

$content_end = "
";

}

//采集后的文件,然后那来进行处理.这个是设置编码的,为什么是这个呢,因为你看下网站http://book.sina.com.cn".$zj[1][$i]".shtml";die();

$str = file_get_contents("http://book.sina.com.cn".$zj[1][$i].".shtml");

preg_match("/(

)(.*?)()/is",$str,$title);

$title = str_replace("_读书频道_新浪网","",preg_replace("//s","",$title[2]));

/***************************************************************************

*preg_replace执行正则表达式的搜索和替换

*str_replace用法真的不好说,就看例子吧!其实就是一个替换

* str   =   "abcabc".replace(/a/g,   "d");         //结果为   dbcdbc

* str   =   "abcabc".replace(/a/,   "d");         //结果为   dbcabc

***************************************************************************/

preg_match("/(".$content_start.")(.*?)(".$content_end.")/is",$str,$content);

$content = preg_replace("//s","",str_replace("

","rn",$content[2]));

$content = str_replace("

","",preg_replace("/^[s]*n/is","",$content));

$content = str_replace("  ? ","  ",preg_replace("/^[s]*n/is","",$content));

$result = " rn第".($i 1)."节--------".$title."_汪老师就是帅 --------- rn".$content;

//var_dump ($result);die();

writer($result, "./ailaopo/".$bookname.".txt","a ");

echo "小说".$bookname."共".$bookzj."节,现在整理到第".$i."节 _".$title."
";

}

echo "小说".$bookname."共".$bookzj."节 已全部整理完成!";

function writer($content,$url,$mode)

{

$fp = fopen($url, $mode);

fwrite($fp, $content);

fclose($fp);

}

?>

php如何采集,php采集入门教程,教你如何写采集相关推荐

  1. 15. GD32F103C8T6入门教程-adc单通道轮训采集

    1.adc gpio初始化 /*使能各种时钟和adc时钟分频输入*/ void rcu_config(void) {/*使能GPIO时钟 */rcu_periph_clock_enable(RCU_G ...

  2. 5个教程教你学会写爬虫!(Python)

    写爬虫总是非常吸引IT学习者,毕竟光听起来就很酷炫极客,我也知道很多人学完基础知识之后,第一个项目开发就是自己写一个爬虫玩玩. 其实懂了之后,写个爬虫脚本是很简单的,但是对于新手来说却并不是那么容易. ...

  3. 给新手看的 Micronaut 入门教程,10 分钟写出一个 Micronaut 程序

    以下内容均选自 Micronaut 入门实战:基于 JVM 的微服务框架 . Micronaut是什么? Micronaut 是一个现代化的基于 JVM 的全栈框架,用于构建模块化且易于测试的微服务或 ...

  4. Python爬虫入门教程 94-100 帮粉丝写Python爬虫之【微信读书书籍信息爬取】

    X同学发私信说想要微信读书上的书籍清单做测试用,吓我一跳,原以为是要爬取APP呢,刚换了新笔记本难道要配置新的开发环境,结果是爬取一个PC端的网站,虚惊一场. 爬虫百例教程导航链接 : https:/ ...

  5. Python爬虫入门教程 93-100 帮粉丝写Python爬虫之【获取CSDN周榜所有大佬的收费专栏】

    一大早又接到一个爬虫需求,他的需求描述很简单,想要获取CSDN周榜所有大佬的收费专栏.多么简洁的描述啊! 这个需求拿到之后,你不订阅一下橡皮擦的爬虫百例专栏吗? https://blog.csdn.n ...

  6. Python爬虫入门教程 98-100 帮粉丝写 Python 爬虫之【2020秋季最难的事--约不上的疫苗】

    帮粉丝写爬虫系列的最后一篇博客了,剩下的两篇是爬虫百例课程的一个总结,本系列课程的加更篇后续会逐步编写,同时滚雪球学 Python 系列课程已经在构思中,希望得到大家的继续支持.这篇博客取名叫做202 ...

  7. Python爬虫入门教程 95-100 帮粉丝写Python爬虫之【全网通用评论爬虫】

    今天这篇文章最终结果就是我制作了一款自动评论器,但整体的设计思路其实扩展到全网所有涉及评论的地方. 如果你订阅了本专栏,直接私信我,我发给你完整代码.如果没有订阅,还想要一下源码研究,那么添加我VX( ...

  8. Python爬虫入门教程 91-100 帮粉丝写Python爬虫之【河北单招学校信息爬虫】

    帮粉丝写爬虫第一篇,接到一个简单的任务,让我爬取一下河北单招学校相关的信息,那最后这10篇博客,第一篇就从这里开始吧.(其实写到现在,我甚至想继续写下去了,没准能凑个爬虫108篇~哈哈哈) 当我把源码 ...

  9. 不用代码免费采集网站内容_看一遍就能上手的火车头采集图文全流程教程

    火车采集器(LocoySpider) 是一个供各大主流文章系统,论坛系统等使用的多线程内容采集,支持采集其他网站文章.下载下本地,统一上传到指定文件夹. 火车头采集规则是什么,怎么样设置火车头采集规则 ...

  10. 【Hadoop生态圈】1.Hadoop入门教程及集群环境搭建

    文章目录 1.简介 2.环境准备 3.安装hadoop 3.修改Hadoop配置文件 3.1.hadoop-env.sh配置 3.2.core-site.xml配置 3.3.hdfs-site.xml ...

最新文章

  1. Android中常用的编码和解码(加密和解密)的问题
  2. android列表时间轴,Android实现列表时间轴
  3. 为什么要加上拉电阻和下拉电阻
  4. 拯救者Y7000P 2020H款安装deepin20.5后资源空闲时经常出现风扇狂转现象
  5. 使用什么优化器_在机器学习项目中该如何选择优化器?
  6. 阿里资深技术工程师: 程序员怎样快速成长?
  7. java 内存快照怎么看_jvm内存快照dump文件太大,怎么分析
  8. python 导入数据对不齐_[Python] 大文件数据读取分析
  9. application context not configured for this file于spring框架使用中的原因
  10. 身份证识别 python + OCR
  11. Mac 下Axure RP9下载与安装
  12. winrm java客户端_java通过winrm4j远程连接win执行命令
  13. java tls_Java客户端中具有SNI的TLS
  14. 大三下了,一点感概,仅作共勉
  15. 2203-python基础知识
  16. 【转载】Oracle 查看执行计划
  17. Android实现弹出窗口(PopUpWindow)
  18. 【GDOI2017模拟11.7】太阳神
  19. 系统学习做汉堡_您如何学习策略设计模式? 做一个汉堡!
  20. antd的Table列选择、列拓展

热门文章

  1. matplotlib绘制随机漫步
  2. 文献 | 一眨眼就错过了的心理机制
  3. MySQL数据库getdate_MySQL数据库 DateTime 默认值是不是用getdate
  4. oracle创建数据库的先决条件,Oracle数据库安装先决条件检查失败解决方案
  5. 利用QRmaker制作二维码
  6. 混合开发模式下主流移动开发平台分析
  7. keras 中的verbose详解
  8. php 双竖线,范数介绍,数字两边双竖线
  9. meta中的http-equiv = X-UA-Compatible
  10. 正确介绍自己的项目,终于不用害怕面试了