PHP实现的抓取小说网站内容功能示例


Posted in PHP onJune 27, 2019

本文实例讲述了PHP实现的抓取小说网站内容功能。分享给大家供大家参考,具体如下:

爬取免费内容,弄到手机,听书,妥妥的。

ini_set('user_agent','Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; GreenBrowser)');
ini_set('max_execution_time', '0');
$base = 'https://www.qu.la/book/19434/';
$start = '7504808.html';
$content_grep = '/    (.*)<br\/>/';
//$content_grep = '/<div id="content">(.*)<br\/>/sS';
$next_grep = '/<a id="pager_next" href=\"(\d+\.html)\" target="_top" class="next">下一章<\/a>/';
$next = $start;
$file_name = '听书了.txt';
while($next) {
  echo 'getting ' . $next . PHP_EOL;
  $result = file_get_contents($base . $next);
  preg_match_all($content_grep, $result, $match);
  $isTitle = true;
  $content = "";
  foreach($match[1] as $line) {
    $line  = str_replace("<br/>", '', $line);
    $line  = str_replace(" ", '', $line);
    if($isTitle) {
      $content = $line . PHP_EOL . PHP_EOL;
      $isTitle = false;
    } else {
      $content .= '    ' . $line . PHP_EOL . PHP_EOL;
    }
  }
  $file = fopen($file_name, 'a');
  echo 'write length: ' . strlen($content) . PHP_EOL;
  fwrite($file, $content);
  fclose($file);
  echo '.';
  preg_match($next_grep, $result, $match);
  $next = $match[1];
}

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
用PHP连接Oracle数据库
Oct 09 PHP
php结合表单实现一些简单功能的例子
Jun 04 PHP
ThinkPHP整合百度Ueditor图文教程
Oct 21 PHP
php在linux下检测mysql同步状态的方法
Jan 15 PHP
php魔术函数__call()用法实例分析
Feb 13 PHP
php用ini_get获取php.ini里变量值的方法
Mar 04 PHP
php+ajax实现无刷新数据分页的办法
Nov 02 PHP
PHP+JS实现的商品秒杀倒计时用法示例
Nov 15 PHP
PHP判断文件是否被引入的方法get_included_files用法示例
Nov 29 PHP
PHP实现的权重算法示例【可用于游戏根据权限来随机物品】
Feb 15 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
Nov 23 PHP
php实现对短信验证码发送次数的限制实例讲解
Mar 04 PHP
不常用但很实用的PHP预定义变量分析
Jun 25 #PHP
PHP中define() 与 const定义常量的区别详解
Jun 25 #PHP
php字符串截取函数mb_substr用法实例分析
Jun 25 #PHP
php过滤htmlspecialchars() 函数实现把预定义的字符转换为 HTML 实体用法分析
Jun 25 #PHP
Laravel向公共模板赋值方法总结
Jun 25 #PHP
php常用字符串长度函数strlen()与mb_strlen()用法实例分析
Jun 25 #PHP
PHP中遍历数组的三种常用方法实例分析
Jun 24 #PHP
You might like
日本收入最高的漫画家:海贼王作者版税年收入高达8.45亿元
2020/03/04 日漫
简单的移动设备检测PHP脚本代码
2011/02/19 PHP
PHP四大安全策略
2014/03/12 PHP
PHP反向代理类代码
2014/08/15 PHP
PHP面向对象程序设计之类常量用法实例
2014/08/20 PHP
PHP使用redis实现统计缓存mysql压力的方法
2015/11/14 PHP
PHP处理bmp格式图片的方法分析
2017/07/04 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
2017/12/26 PHP
PHP文件类型检查及fileinfo模块安装使用详解
2019/05/09 PHP
JS文本获得焦点清除文本文字的示例代码
2014/01/13 Javascript
window.location 对象所包含的属性
2014/10/10 Javascript
TypeScript具有的几个不同特质
2015/04/07 Javascript
实例详解JavaScript获取链接参数的方法
2016/01/01 Javascript
webpack实现热更新(实施同步刷新)
2017/07/28 Javascript
VuePress 快速踩坑小结
2019/02/14 Javascript
[36:54]Mineski vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python算法输出1-9数组形成的结果为100的所有运算式
2017/11/03 Python
对numpy Array [: ,] 的取值方法详解
2018/07/02 Python
Flask入门之上传文件到服务器的方法示例
2018/07/18 Python
python英语单词测试小程序代码实例
2019/09/09 Python
Django如何使用asyncio协程和ThreadPoolExecutor多线程
2020/10/12 Python
HTML5 和小程序实现拍照图片旋转、压缩和上传功能
2018/10/08 HTML / CSS
Jacadi Paris美国官方网站:法国童装品牌
2017/10/15 全球购物
在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则
2012/01/13 面试题
物流专业大学生求职信范文
2013/10/28 职场文书
应届生英语教师求职信
2013/11/05 职场文书
客服服务心得体会
2013/12/30 职场文书
优秀毕业生求职信范文
2014/01/02 职场文书
大学校园毕业自我鉴定
2014/01/15 职场文书
快餐店的创业计划书范文
2014/01/29 职场文书
工程安全员岗位职责
2014/03/09 职场文书
竞赛口号大全
2014/06/16 职场文书
运动会广播稿100字
2015/08/19 职场文书
谢师宴家长答谢词
2015/09/30 职场文书
Spring this调用当前类方法无法拦截的示例代码
2022/03/20 Java/Android
Python测试框架pytest高阶用法全面详解
2022/06/01 Python