PHP 抓取新浪读书频道的小说并生成txt电子书的代码


Posted in PHP onDecember 18, 2009
/* Author: Yang Yu <yangyu@sina.cn> */ 
//想看什么电子书,先去新浪读书搜索,然后填入对应的参数即可 
//http://vip.book.sina.com.cn/ 
//电子书参数 
$array_book[0] = 38884; //小说id 
$array_book[1] = 22172; //章节起始id 
$array_book[2] = 32533; //章节结束id 
$array_book[3] = '中国特种部队生存实录:狼牙'; //小说名字 //匹配参数 
$title_pre = "/<h1>(.*?)<\/h1>/"; //标题部分 
$contents_pre = "/<div id=\"contTxt\" class=\"contTxt1\">(.*?)<\/div>/"; //内容部分 
//生成电子书 
for( $i = $array_book[1]; $i <= $array_book[2]; $i++){ 
$url = "http://vip.book.sina.com.cn/book/chapter_{$array_book[0]}_{$i}.html"; 
$html = file_get_contents($url); 
preg_match_all($title_pre,$html,$title); 
preg_match_all($contents_pre,$html,$contents); 
$fh = fopen($array_book[3].'.txt','a+'); 
$write_contents = $title[1][0]."\r\n".str_replace('</p>',"\r\n",str_replace('<p>',' ',$contents[1][0]))."\r\n"; 
if( fwrite($fh,$write_contents) ){ 
echo '第'.$i.'节抓取完毕< /br>'; 
} 
fclose($fh); 
}
PHP 相关文章推荐
基于OpenCV的PHP图像人脸识别技术
Oct 11 PHP
PHP 杂谈《重构-改善既有代码的设计》之五 简化函数调用
May 07 PHP
thinkphp的静态缓存用法分析
Nov 29 PHP
Yii框架获取当前controlle和action对应id的方法
Dec 03 PHP
php+ajax 实现输入读取数据库显示匹配信息
Oct 08 PHP
PHP中的多种加密技术及代码示例解析
Oct 20 PHP
Yii2实现多域名跨域同步登录退出
Feb 04 PHP
PHP数据库操作三:redis用法分析
Aug 16 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
Aug 31 PHP
Laravel使用scout集成elasticsearch做全文搜索的实现方法
Nov 30 PHP
Laravel中正确地返回HTTP状态码方法示例
Sep 10 PHP
利用PHP计算有多少小于当前数字的数字方法示例
Aug 26 PHP
PHP strtotime函数详解
Dec 18 #PHP
php 日期时间处理函数小结
Dec 18 #PHP
php 计算两个时间戳相隔的时间的函数(小时)
Dec 18 #PHP
php 来访国内外IP判断代码并实现页面跳转
Dec 18 #PHP
php jquery 实现新闻标签分类与无刷新分页
Dec 18 #PHP
PHP XML操作类DOMDocument
Dec 16 #PHP
PHP下编码转换函数mb_convert_encoding与iconv的使用说明
Dec 16 #PHP
You might like
用Socket发送电子邮件
2006/10/09 PHP
php 在文件指定行插入数据的代码
2010/05/08 PHP
php判断邮箱地址是否存在的方法
2016/02/13 PHP
KindEditor在php环境下上传图片功能集成的方法示例
2020/07/20 PHP
JavaScript入门教程(8) Location地址对象
2009/01/31 Javascript
jQuery+css实现图片滚动效果(附源码)
2013/03/18 Javascript
ZeroClipboard插件实现多浏览器复制功能(支持firefox、chrome、ie6)
2014/08/30 Javascript
Javascript的setTimeout()使用闭包特性时需要注意的问题
2014/09/23 Javascript
js时间戳和c#时间戳互转方法(推荐)
2017/02/15 Javascript
解决VUEX刷新的时候出现数据消失
2017/07/03 Javascript
Node.js 使用流实现读写同步边读边写功能
2017/09/11 Javascript
微信小程序button组件使用详解
2018/01/31 Javascript
详解vue的双向绑定原理及实现
2019/05/05 Javascript
Vue如何基于vue-i18n实现多国语言兼容
2020/07/17 Javascript
在vue项目中 实现定义全局变量 全局函数操作
2020/10/26 Javascript
JavaScript代码实现微博批量取消关注功能
2021/02/05 Javascript
[52:06]完美世界DOTA2联赛决赛日 Inki vs LBZS 第一场 11.08
2020/11/10 DOTA
[47:26]完美世界DOTA2联赛 LBZS vs Forest 第二场 11.07
2020/11/09 DOTA
python使用xauth方式登录饭否网然后发消息
2014/04/11 Python
Python 文件管理实例详解
2015/11/10 Python
Python中的字符串类型基本知识学习教程
2016/02/04 Python
Python实现字符串格式化的方法小结
2017/02/20 Python
使用python制作游戏下载进度条的代码(程序说明见注释)
2019/10/24 Python
借助Paramiko通过Python实现linux远程登陆及sftp的操作
2020/03/16 Python
Python猴子补丁Monkey Patch用法实例解析
2020/03/23 Python
租租车:国际租车、美国租车、欧洲租车、特价预订国外租车(中文服务)
2018/03/28 全球购物
澳大利亚和新西兰最大的在线旅行社之一:Aunt Betty
2019/08/07 全球购物
Linux文件操作命令都有哪些
2016/07/23 面试题
EJB实例的生命周期
2016/10/28 面试题
2014年幼儿园植树节活动方案
2014/03/02 职场文书
保护环境倡议书100字
2014/05/19 职场文书
车间安全生产标语
2014/06/06 职场文书
房屋买卖授权委托书
2014/09/27 职场文书
技术股份合作协议书
2014/10/05 职场文书
IIS服务器中设置HTTP重定向访问HTTPS
2022/04/29 Servers
浅谈Node的内存泄露问题
2022/05/06 NodeJs