P.S. 2019年11月15日更新。

昨天一个朋友问我能否帮忙下载廖雪峰老师的python3教程,于是便写了这个php脚本。

在这里非常感谢廖雪峰老师的辛苦努力。<?php

/**

* 获取Python3教程

* 感谢廖雪峰老师

* 教程地址: https://www.liaoxuefeng.com/wiki/1016959663602400

* 命令行下运行

* @AUTHOR: 杨永全

* @E-mail: qt06.com@139.com

* @URL: http://www.qt.hk/

* WEIBO: http://weibo.com/qt06

*/

$base_url = "https://www.liaoxuefeng.com/wiki/1016959663602400/";

//获取教程目录页面

$s = file_get_contents("https://www.liaoxuefeng.com/wiki/1016959663602400");

//匹配出包含教程目录的html片段

preg_match('#

  • (.*?)

#is', $s, $rs);

$s1 = $rs[1];

//匹配出目录列表

preg_match_all('#(.+?)#is', $s1,$list);

$cnt = count($list[1]);

for($i=0;$i< $cnt;$i++) {

//命令行打印章节标题和地址

echo ($i + 1) .$list[2][$i] . ',' . $list[1][$i]. "\r\n";

//需要保存的文件名

$filename = iconv('utf-8', 'gbk', ($i + 1) . ' ' . $list[2][$i] . '.txt');

$filename = str_replace('/', '和', $filename);

//获取教程详细内容

$content_url = $base_url . $list[1][$i];

$title = $list[2][$i];

$s = file_get_contents($content_url);

//匹配出详细内容

preg_match('#

(.*?)

.*?


#is',$s,$rs);

$s = $rs[1];

//过滤html标记,并适当处理空行

$s = str_replace(">\n\n\n

$s = strip_tags($s);

$s = str_replace("\n\n\n", "\n\n", $s);

$s = str_replace("\n\n\n", "\n\n", $s);

$s = str_replace("\n\n\n", "\n\n", $s);

//可能会有副作用,导致代码中的\\n被处理

$s = str_replace("\n", "\r\n", $s);

//处理html实体字符

$s = html_entity_decode($s);

//$s = str_replace('>', '>', $s);

//$s = str_replace(''','\"', $s);

//保存到当前目录,windows的文件名必须是gbk

廖雪峰 php教程,获取廖雪峰老师的Python3教程的php脚本相关推荐

  1. python3获取当前日期_如何在python3中获取当前日期和时间? – Python3教程

    在本文中,你将学习如何用Python获取今天的日期和当前的日期和时间,我们还将使用strftime()方法以不同的格式格式化日期和时间. 获取当前日期的方法有很多,我们将使用datetime模块的da ...

  2. Swift3.0语言教程获取C字符串

    Swift3.0语言教程获取C字符串 Swift3.0语言教程获取C字符串,为了让Swift和C语言可以实现很好的交互,开发者可以使用NSString的cString(using:)方法在指定编码格式 ...

  3. Swift3.0语言教程获取字符串长度

    Swift3.0语言教程获取字符串长度 Swift3.0语言教程获取字符串长度,当在一个字符串中存在很多的字符时,如果想要计算字符串的长度时相当麻烦的一件事情,在NSString中可以使用length ...

  4. python爬虫教程-Python教父|廖雪峰老师官方爬虫教程,13个案例带你全面入门!

    原标题:Python教父|廖雪峰老师官方爬虫教程,13个案例带你全面入门! Python简直就是万能的,你用Python都做过哪些事? 用网页看各大网站的VIP视频,用python下载? 用Pytho ...

  5. 廖雪峰python教程-福利 | 廖雪峰官方Python教程,拿走不谢!

    原标题:福利 | 廖雪峰官方Python教程,拿走不谢! Python简直就是万能的,你用Python都做过哪些事? 用网页看各大网站的VIP视频,用python下载? 用Python玩跳一跳,跳到5 ...

  6. 廖雪峰python视频教程-福利 | 廖雪峰官方Python教程,拿走不谢!

    原标题:福利 | 廖雪峰官方Python教程,拿走不谢! Python简直就是万能的,你用Python都做过哪些事? 用网页看各大网站的VIP视频,用python下载? 用Python玩跳一跳,跳到5 ...

  7. python廖老师课程资源,廖老师的python教程

    python推荐夜曲还是廖雪峰 夜曲编程这是真正适合从零开始学习Python的编程小白,一个非常有趣的线上课程.廖雪峰官方网站是编程大佬. 很多Python入门推荐里都会提到的一个学习渠道我认为更适合 ...

  8. 孔浩老师 java 微信_孔浩老师JAVA WebService教程

    课程目录:01_webservice快速实例 02_wsimport的使用 03_wsdl和soap讲解(介入了tcpmon工具) 04_SOA的分析(纯属扯淡) 05_dtd讲解 06_schema ...

  9. Kali Linux常用服务配置教程获取IP地址

    Kali Linux常用服务配置教程获取IP地址 下面以Kali Linux为例,演示获取IP地址的方法 (1)设置网络接口为自动获取IP地址.在Kali Linux的收藏夹中单击图标,将显示所有的程 ...

最新文章

  1. 3764树上的异或值(自己研究的静态字典树)
  2. 4 [面向对象]-三大特性:多态
  3. Spring5 jar包下载
  4. 【CodeForces - 608C】Chain Reaction (二分 或 dp ,思维)
  5. php删除第一个字母,php – 正在上传的文件将第一个字母切断
  6. 配置多个git账号_一台电脑,两个及多个git账号配置
  7. jQuery 的属性操作方法
  8. [.NET 4.5] ADO.NET / ASP.NET 使用 Async 和 Await 异步 存取数据库
  9. IBM语音识别系统实现错词率重大突破
  10. FineBI 项目资源迁移
  11. 迅雷beat下载为php,2019苹果迅雷beat版链接下载地址-迅雷ios内测版ios13企业信任版app下载官方最新beta手机版-迅雷ios永久稳定版西西软件下载...
  12. flask框架的使用
  13. 服务器HBA品牌、驱动和固件版本核查
  14. 键盘输入一个高精度的正整数n,去掉任意s个数字后剩下的数字按原左右次序将组成一个新的正整数。编程对给定的n和s,寻找一种方案,使得剩下的数最小
  15. 【面试题记】删除字符串中相邻重复字符
  16. mac mini mysql 安装_苹果宣布新款Mac mini机型 高端版安装服务器系统
  17. vue如何动态获取数据改变背景颜色和字体颜色以及获取图片
  18. “Google chrome”,安卓和苹果版本,以及他的版本历史真是绚丽啊!
  19. python离线安装第三方库whl_详细说明如何在pycharm不联网的情况下,离线安装第三方库及依赖包(如sklearn)...
  20. 开吃吧无线订餐机 改变餐饮O2O外卖行业

热门文章

  1. 三年黑盒测试工程师对嵌入式软件测试的理解
  2. 学的中专计算机专业可以考大专吗,我是中专计算机系毕业的,可以考哪些国家职业资格证书...
  3. matlab获取晶粒边界,晶粒边界
  4. 【ZCMU1930】帽子戏法(并查集)
  5. 2010-2020年和讯网分省份社会责任数据
  6. remix共享本地文件夹
  7. 面向对象编程03:封装、继承、多态
  8. VUE3中 v-for指令用法,列表循环
  9. 人力资源管理系统面向对象建模分析
  10. Git代码合并之使用 rebase 整理提交历史