自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 资源 (30)
  • 收藏
  • 关注

原创 soup.select()函数的使用用法

soup.select()在源代码中的原型为:select(self, selector, namespaces=None, limit=None, **kwargs)功能:查找html中我们所需要的内容我们主要使用的参数是selector,其定义为”包含CSS选择器的字符串“。关于CCS,也需要了解一些概念,参考CCS语法与CSS Id 和 Class。我们在写 CSS 时,标签名不加...

2019-10-07 23:57:03 35756 1

原创 卷积神经网络(CNN):可视化卷积核(tf.nn.conv2d函数)处理后的图片

说到卷积神经网络,就要提到卷积计算,以上这幅图就是卷积计算的过程。关于卷积方面,这里就不详细说明了,网上资料有很多。卷积的过程就是通过不同的卷积核提取不同的特征,如一些边缘特征(水平边缘,垂直边缘等)。这里主要通过代码展示通过卷积计算后图片的变化,以可视化的方法为大家展示卷积计算的作用。代码如下,其中有较为详细的注释,主要需要了解的是函数tf.nn.conv2d()的用法。import t...

2019-09-08 21:18:31 2248

原创 Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2

使用TensorFlow时,弹出错误:Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2出现这样的问题的原因是我们的TensorFlow版本出现问题了,因此要换成支持cpu用AVX2(Advanced Vector Extensions )编译的TensorFlow版本...

2019-08-16 09:44:48 1402

原创 OpenCV与VS2017环境搭建

一、安装VS2017二、OpenCV与Visual Studio版本搭配三、下载与安装OpenCV四、添加OpenCV的系统环境变量五、新建VS2010工程六、为工程添加代码七、VS2017工程配置OpenCV环境1.属性管理器"VC++目录->包含目录"设置2.“VC++目录->库目录”设置3.“链接器->输入->附加依赖项”设置4.运行项目八、常见问题1.以上配置完成...

2019-07-13 21:31:25 2917 6

原创 Visual Studio 2017安装教程

下载VS2017组件选择及安装设置激活其它下载VS2017下载VS2017的安装器:http://msdn.itellyou.cn/我的安装版本为:Visual Studio 2017 (version 15.7)Visual Studio Professional 2017 (version 15.7) (x86 and x64) - (Multiple Languages)下载此安...

2019-07-12 16:02:33 1501 1

原创 Pandas DataFrame的基本属性详解

Pandas DataFrame的一些基本属性基本功能列表import pandas as pd 导入库df = pd.DataFrame(data=None, index=None, columns=None, dtype=None,copy=False) 创建一个DataFramedf.indexdf.columnsdf.axesdf.Tdf.info()...

2019-06-24 19:13:33 165310 11

原创 运行多个Django工程,停止其中一个Django工程后端口依然依旧被占用的问题

环境:PyCharm+Django 2.7.1在学习Django的时候,使用PyCharm在创建了两个工程,分别是testDjango(进入地址是http://127.0.0.1:8000/test)和firstDjango(进入地址是http://127.0.0.1:8000/first),然而在运行的时候,其中一个总是运行不出来,最后才发现是运行之前另一个工程的时候即使停止了该工程,但端口依...

2019-03-08 21:27:59 1278

原创 Python 2.7+Django报错Error loading MySQLdb module: No module named MySQLdb解决方法

Python 2.7+Django报错Error loading MySQLdb module: No module named MySQLdb解决方法出现这个错误的原因是因为没有安装第三方库MySQLdb,但是如果在pycharm中搜索这个库,会显示如下:在pycharm中搜不到这库,这时可以在命令行中安装MySQLdb或者安装pymsql,以下为详细步骤。解决方法一:依旧安装MySQLd...

2019-03-05 16:09:08 1796 1

深入搜索引擎-高清扫描版-带完整书签

深入搜索引擎--海量信息的压缩、索引和查询-高清扫描版-带完整书签 《深入搜索引擎:海量信息的压缩、索引和查询》是斯坦福大学信息检索和挖掘课程的首选教材之一,并已成为全球主要大学信息检索的主要教材。《深入搜索引擎:海量信息的压缩、索引和查询》理论和实践并重,深入浅出地给出了海量信息数据处理的整套解决方案,包括压缩、索引和查询的方方面面。其最大的特色在于不仅仅满足信息检索理论学习的需要,更重要的是给出了实践中可能面对的各种问题及其解决方法。 《深入搜索引擎:海量信息的压缩、索引和查询》作为斯坦福大学信息检索课程的教材之一,具有一定的阅读难度,主要面向信息检索专业高年级本科生和研究生、搜索引擎业界

2019-03-22

数据挖掘概念与技术-第3版-中文版-高清扫描版-带完整书签

数据挖掘概念与技术-第3版-中文版-高清扫描版-带完整书签 网上下载的大多数书签不签,于是自己制作了书签,和书中目录中的一样,十分详细,方便翻页

2019-03-21

Head First Servlets&JSP;-第2版-高清扫描版-带详细书签

Head First Servlets&JSP;-第2版-高清扫描版-带详细书签 高清扫描版,书签比较详细,和目录一样

2019-03-21

离散数学-学习指导与习题解析-第2版-屈婉婷--高清扫描版-带完整书签

离散数学-学习指导与习题解析-第2版-屈婉婷--高清扫描版-带完整书签

2019-03-21

离散数学及其应用-Kenneth Rosen-第7版-英文版与中文版及答案-带详细书签

离散数学及其应用-Kenneth Rosen-第7版-英文版与中文版及答案-带详细书签 包括英文版与中文版书籍,还有课后习题答案,均带详细书签

2019-03-20

深度学习Deep Learning-带完整书签

深度学习Deep Learning-带完整书签 书签及其详细,和目录中的一样

2019-03-20

SQL基础教程[日]MICK著-高清扫描版-带完整书签

SQL基础教程[日]MICK著-高清扫描版-带完整书签 第1章 数据库和SQL 17 1-1 数据库是什么 19 我们身边的数据库 19 为什么DBMS那么重要 20 DBMS种类 22 1-2 数据库的结构 24 RDBMS的常见系统结构 24 表的结构 26 1-3 SQL概要 29 标准SQL 29 SQL语句及其种类 30 SQL的基本书写规则 31 1-4 表的创建 34 表的内容的创建 34 数据库的创建(CREATE DATABASE语句) 35 表的创建(CREATE TABLE语句) 35 命名规则 37 数据类型的指定 38 约束的设置 40 1-5 表的删除和更新 41 表的删除(DROP TABLE语句) 41 表定义的更新(ALTER TABLE语句) 42 向Shohin表中插入数据 43 练习题 46

2019-03-20

MATLAB函数速查手册[修订版]-邓薇-文字版-带完整书签

MATLAB函数速查手册[修订版]-邓薇-文字版-带完整书签 《MATLAB函数速查手册》立足MATLAB函数基础,并且附带较多的实例讲解,所以既适合初学者,又适合有一定经验的MATLAB使用者。《MATLAB函数速查手册》也可以作为大专院校学生的参考用书。 内容全面:近500个函数,全面覆盖MATLAB的各类应用;查询方便:提供功能索引和字母索引;实例丰富:每个函数均配有实例讲解。

2019-03-20

Excel2013函数速查手册-带完整书签

Excel2013函数速查手册-带完整书签 一、 财务函数(55 条) 13 1. ACCRINT 13 2. ACCRINTM 13 3. AMORDEGRC 13 4. AMORLINC 13 5. COUPDAYBS 14 6. COUPDAYS 14 7. COUPDAYSNC 14 8. COUPNCD 14 9. COUPNUM 14 10. COUPPCD 15 11. CUMIPMT 15 12. CUMPRINC 15 13. DB 15 14. DDB 15 15. DISC 15 16. DOLLARDE 16 17. DOLLARFR 16 18. DURATION 16 19. EFFECT 16 20. FV 16

2019-03-19

Qt及Qt Quick开发实战精解-霍亚飞-高清扫描版-带完整书签

Qt及Qt Quick开发实战精解-霍亚飞-高清扫描版-带完整书签

2019-03-18

Python语言及其应用-高清文字版-带完整书签

Python语言及其应用-高清文字版-带完整书签 第1章 Python 初探 1 1.1 真实世界中的 Python 5 1.2 Python 与其他语言 5 1.3 为什么选择 Python 7 1.4 何时不应该使用 Python 8 1.5 Python 2 与 Python 3 8 1.6 安装 Python 9 1.7 运行 Python 9 1.7.1 使用交互式解释器 9 1.7.2 使用 Python 文件 10 1.7.3 下一步 11 1.8 禅定一刻 11 1.9 练习 11

2019-03-18

Python学习手册-第4版-中文版-高清扫描版-带完整书签

Python学习手册-第4版-中文版-高清扫描版-带完整书签 第1章 问答环节 19 人们为何使用Python 19 软件质量 20 开发效率 21 Python是“脚本语言”吗 21 好吧,Python的缺点是什么呢 23 如今谁在使用Python 23 使用Python可以做些什么 24 系统编程 25 用户图形接口 25 internet脚本 25 组件集成 26 数据库编程 26 快速原型 27 数值计算和科学计算编程 27 游戏、图像、人工智能、xml、机器人等 27 Python如何获得支持 28 Python有哪些技术上的优点 28 面向对象 28 免费 29 可移植 29 功能强大 30 可混合 31 简单易用 31 简单易学 32 Python和其他语言比较起来怎么样 32 本章小结 33 本章习题 33 习题解答 34 Python是工程,不是艺术 34

2019-03-18

C++语言程序设计-第3版-郑莉-高清扫描版-带完整书签

C++语言程序设计-第3版-郑莉-高清扫描版-带完整书签 第1章 绪论 1 1.1 计算机程序设计语言的发展 1 1.1.1 机器语言与汇编语言 1 1.1.2 高级语言 2 1.1.3 面向对象的语言 2 1.2 面向对象的方法 2 1.2.1 面向对象方法的由来 3 1.2.2 面向对象的基本概念 4 1.3 面向对象的软件开发 5 1.3.1 分析 5 1.3.2 设计 5 1.3.3 编程 6 1.3.4 测试 6 1.3.5 维护 6 1.4 信息的表示与存储 6 1.4.1 计算机的数字系统 7 1.4.2 几种进位记数制之间的转换 8 1.4.3 信息的存储单位 10 1.4.4 二进制数的编码表示 11 1.4.5 定点数和浮点数 14 1.4.6 数的表示范围 15 1.4.7 非数值信息的表示 16 1.5 程序的开发过程 16 1.5.1 基本术语 16 1.5.2 程序的开发过程 17 1.6 小结 18 习题 18

2019-03-10

C程序设计-第4版-谭浩强-高清扫描版-带完整书签

C程序设计-第4版-谭浩强-高清扫描版-带完整书签 第1章 程序设计和C语言 1 1.1 什么是计算机程序 1 1.2 什么是计算机语言 1 1.3 C语言的发展及其特点 3 1.4 最简单的C语言程序 5 1.4.1 最简单的C语言程序举例 6 1.4.2 C语言程序的结构 10 1.5 运行C程序的步骤与方法 12 1.6 程序设计的任务 14 习题 15 第2章 算法—程序的灵魂 16 2.1 什么是算法 16 2.2 简单的算法举例 17 2.3 算法的特性 21 2.4 怎样表示一个算法 22 2.4.1 用自然语言表示算法 22 2.4.2 用流程图表示算法 22 2.4.3 三种基本结构和改进的流程图 26 2.4.4 用N-S流程图表示算法 28 2.4.5 用伪代码表示算法 31 2.4.6 用计算机语言表示算法 32 2.5 结构化程序设计方法 34 习题 36

2019-03-06

C程序设计-第3版-谭浩强-高清扫描版-带完整书签

C程序设计-第3版-谭浩强-高清扫描版-带完整书签 第1章 C语言概述 1 1.1 C语言出现的历史背景 1 1.2 C语言的特点 2 1.3 简单的C语言程序介绍 4 1.4 运行C程序的步骤与方法 7 习题 12 第2章 程序的灵魂——算法 14 2.1 算法的概念 14 2.2 简单算法举例 15 2.3 算法的特性 19 2.4 怎样表示一个算法 20 2.5 结构化程序设计方法 34 习题 36 第3章 数据类型、运算符与表达式 37 3.1 C语言的数据类型 37 3.2 常量与变量 37 3.3 整型数据 40 3.4 浮点型数据 45 3.5 字符型数据 48 3.6 变量赋初值 53 3.7 各类数值型数据间的混合运算 54 3.8 算术运算符和算术表达式 55 3.9 赋值运算符和赋值表达式 59 3.10 逗号运算符和逗号表达式 65 习题 66

2019-03-06

大规模C++程序设计-高清扫描版-带完整书签

大规模C++程序设计-高清扫描版-带完整书签 第1部分 基础知识 31 第1章 预备知识 33 1.1 多文件C++程序 33 1.2 typedef(类型别名)声明 40 1.3 assert语句 41 1.4 有关风格的一些问题 42 1.5 迭代器 48 1.6 逻辑设计符号 54 1.7 继承与分层 62 1.8 最小化 63 1.9 小结 64 第2章 基本规则 66 2.1 概述 66 2.2 成员数据访问 67 2.3 全局名称空间 71 2.4 包含卫哨 79 2.5 冗余包含卫哨 81 2.6 文档 86 2.7 标识符命名规则 87 2.8 小结 89

2019-03-06

C程序设计学习辅导-第4版-谭浩强-带完整书签

C程序设计学习辅导-第4版-谭浩强-带完整书签 封面 1 目录 8 第1部分 《C程序设计(第四版)》习题和参考解答 11 第1章 程序设计和C语言 11 第2章 算法——程序的灵魂 14 第3章 最简单的C程序设计——顺序程序设计 24 第4章 选择结构程序设计 34 第5章 循环结构程序设计 47 第6章 利用数组处理批量数据 64 第7章 用函数实现模块化程序设计 84 第8章 善于利用指针 109 第9章 用户自己建立数据类型 138 第10章 对文件的输入输出 169 第2部分 深入学好C 程序设计 187 第11章 预处理指令 187 第12章 位运算 202 第13章 C程序案例 214 第3部分 C语言程序上机指南 233 第14章 怎样使用Visual C++运行程序 233

2019-03-06

C++程序设计-谭浩强-清晰版完整书签

C++程序设计-谭浩强-清晰版完整书签 封面 -24 目录 -10 第1篇 基本知识 1 第1章 C++的初步知识 3 1.1 从C到C++ 3 1.2 最简单的C++程序 5 1.3 C++程序的构成和书写形式 12 1.4 C++程序的编写和实现 13 1.5 关于C++上机实践 15 习题 16 第2章 数据类型与表达式 19 2.1 C++的数据类型 19 2.2 常量 21 2.2.1 什么是常量 21 2.2.2 数值常量 21 2.2.3 字符常量 23 2.2.4 符号常量 26 2.3 变量 27 2.3.1 什么是变量 27 2.3.2 变量名规则 28 2.3.3 定义变量 28 2.3.4 为变量赋初值 29 2.3.5 常变量 30 2.4 C++的运算符 31 2.5 算术运算符与算术表达式 32 2.5.1 基本的算术运算符 32 2.5.2 算术表达式和运算符的优先级与结合性 32 2.5.3 表达式中各类数值型数据间的混合运算 32 2.5.4 自增和自减运算符 33 2.5.5 强制类型转换运算符 35 2.6 赋值运算符与赋值表达式 36 2.6.1 赋值运算符 36 2.6.2 赋值过程中的类型转换 36 2.6.3 复合的赋值运算符 38 2.6.4 赋值表达式 39 2.7 逗号运算符与逗号表达式 40 习题 41

2019-03-06

Head First 设计模式

带完整书签 封面 -36 目录- -15 1.欢迎来到设计模式世界:设计模式入门 1 模拟鸭子应用 2 Joe想到继承 5 利用接口如何? 6 软件开发的不变真理 8 分开变化和不变部分 10 设计鸭子的行为 11 测试鸭子的代码 18 动态地设置行为 20 封装行为的大局观 22 “有一个”比“是一个”更好 策略模式 23 策略模式 24 共享模式词汇的威力 28 我如何使用设计模式? 29 设计箱内的工具 32 习題解答 34 2.让你的对象知悉现况:观察者模式 37 气象观测站 39 认识观察者模式 44 出版者+订阅者=观察者模式 45 五分钟短剧:观察主题 48 定义观察者模式 51 松耦合的威力 53 设计气象站 56 实现气象站 57 使用Java内建的观察者模式 64 java.util.Observable的黑暗面 71 设计箱内的工具 74 习题解答 78 3.装饰对象:装饰者模式 79 欢迎来到星巴兹咖啡 80 幵放-关闭原则 86 认识装饰者模式 88 以装饰者构造饮料订单 89 定义装饰者模式 91 装饰饮料 92 写下星巴兹的代码 95 真实世界的装饰者:Java I/O 100 编写自己的Java I/O装饰者 102 设计箱内的工具 105 习题解答 106 4.烘烤OO的精华:工厂模式 109 当看到到“new",就会想到“具体” 110 对象村比萨 112 封装创建对象的代码 114 建立一个简单比萨工厂 115 定义简单工厂 117 给比萨店使用的框架 120 允许子类做决定 121 让我们幵一家比萨店吧 123 声明一个工厂方法 125 认识工厂方法模式 131 一个很依赖的比萨店 137 看看对象依賴 138 依赖倒置原则 139 再回到到比萨店…… 144 原料家族 145 建造原料工厂 146 看看抽象工厂 153 幕后花絮 154 定义抽象工厂模式 156 比较工厂方法和抽象工厂 160 设计箱内的工具 162 习题解答 164 5.独一无二的对象:单件模式 169 独一无二 170 小小单件 171 剖析经典的单件模式实现 173 单件的告白 174 巧克力工厂 175 定义单件模式 177 Hershey我们遇到麻烦了 178 化身为JVM 179 处理多线程 180 单件Q&A 184 设计箱内的工具 186 习题解答 188 6.封装调用:命令模式 191 巴斯特家电自动化公司 192 遥控器 193 看一下厂商的类 194 同时,回到餐厅…… 197 研究餐厅的交互 198 对象村餐厅的角色和职责 199 从餐厅到命令模式 201 第一个命令对象 203 定义命令模式 206 命令模式与遥控器 208 实现遥控器 210 逐步测试遥控器 212 写文档的时刻到了 215 使用状态实现撤销 220 每个遥控器都需要Party模式! 224 使用宏命令 225 命令模式的更多用途:队列请求 228 命令換式的更多用途:日志请求 229 设计箱内的工具 230 习题解答 232 7.随遇而安:适配器与外观模式 235 我们周围的适配器 236 面向对象适配器 237 适配器模式解析 241 定义适配器模式 243 对象和类的适配器 244 今夜话题:对象适配器和类适配器 247 真实世界的适配器 248 将枚举适配到迭代器 249 今夜话题:装饰者模式和适配器模式 252 甜蜜的家庭影院 255 灯光、相机、外观! 258 构造家庭影院外观 261 定义外观模式 264 “最少知识”原则 265 设计箱内的工具 270 习题解答 272 8.封装算法:模板方法模式 275 快速搞定几个咖啡和茶的类 277 抽取咖啡和茶 280 更进一步的设计…… 281 抽象prepareRecipe() 282 我们做了什么? 285 认识模板方法 286 走,泡茶去 287 模板方法带给我们什么? 288 定义模板方法模式 289 再靠近一点 290 对模板方法进行挂钩…… 292 使用钩子 293 咖啡?茶?执行测试程序 294 好莱坞原则 296 好莱坞原则和模板方法 297 荒野中的模板方法 299 用模板方法排序 300 来排序鸭子吧…… 301 比较鸭子 302 观察鸭子排序的内部运作3〇 4 一个Swing的窗口程序 306 Applet 307 今夜话题:模板方法和策略 308 设计箱内的工具3H 习题解答 312 9.管理良好的集合:迭代器与组合模式 315 对象村餐厅和对象村煎饼屋合并了 316 比较菜单的实现 318 可以封装遍历吗? 323 认识迭代器模式 325 在餐厅菜单中加人一个迭代器 326 鸟瞰目前的设计 331 利用 java.ulil.Iterator来治理 333 这为我们带来什么好处? 335 定义迭代器模式 336 单一责任 339 迭代器与集合 348 Java 5的迭代器和集合 349 正当我们认为这很安全的时候…… 353 定义组合模式 356 利用组合设计菜单 359 实现组合菜单 362 闪回到迭代器 368 空迭代器 372 迭代器和组合凑在一起的魔力…… 374 设计箱内的工具 380 习题解答 381 10.事物的状态:状态模式 385 如何实现状态?(办公室隔间对话) 387 状态机101 388 状态机代码的第一个版本 390 该来的躲不掉……变更请求! 394 混乱的状态…… 396 定义状态接口和类 399 实现我们的状态类 401 重新改造糖果机 402 定义状态模式 410 状态VS.策略模式 411 精神检査…… 417 我们差点儿忘了! 420 设计箱内的工具 423 习题解答 424 11.控制对象访问:代理模式 429 监控糖果机 430 远程代理的色 434 RMI浏览 437 GumballMachine 远程代理 450 代理幕后花絮 458 定义代理模式 460 准备虚拟代理 462 设计CD封面虚拟代理 464 虚拟代理的幕后花絮 470 使用Java API的代理 474 五分钟短剧:保护主题 478 创建动态代理 479 代理动物园 488 设计箱内的工具 491 习题解答 492 12.模式中的模式:复合模式 499 复合模式 500 与鸭子重聚 501 加人一个适配器 504 加人一个装饰者 506 加人一个工厂 508 加入一个组合和一个迭代器 513 加入一个观察者 516 検式槪览 523 鸭瞰:类图 524 模型-视图-控制器之歌 526 设计模式是MVC的钥匙 528 戴着模式的有色眼镜看MVC 532 利用MVC控制节拍…… 534 模型 537 视图 539 控制器 542 探索策略 545 适配模型 546 现在我们准备写HeartController 547 MVC与Web 549 设计模式和Model 2 557 设计箱内的工具 560 习题解答 561 13.真实世界中的模式:与设计模式相处 577 对象村指南 578 定义设计模式 579 更近地观察设计模式的定义 581 愿力与你同在 582 模式类目 583 如何创建模式 586 想当一个设计模式作家吗? 587 组织设计模式 589 用模式思考 594 使用模式的心智 597 別忘了共享词汇的威力 599 共享词汇的五种方式 600 和四人组一同巡游对象忖 601 你的旅途刚刚开始…… 602 其他设计模式资源 603 模式动物园 604 以反模式歼灭恶势力 606 设计箱内的工具 608 离开对象村…… 609 14.附录A:剩下的模式 611 桥接 612 生成器 614 责任链 616 蝇量 618 解释器 620 中介者 622 备忘录 624 原型 626 访问者 628

2018-11-13

PYTHON网络爬虫从入门到实践-带书签

PYTHON网络爬虫从入门到实践.pdf 作者:唐松 陈智铨 带完整书签 封面 -16 目录 -6 第1章 网络爬虫入门 1 1.1 为什么要学网络爬虫 2 1.1.1 网络爬虫能带来什么好处 2 1.1.2 能从网络上爬取什么数据 3 1.1.3 应不应该学爬虫 3 1.2 网络爬虫是否合法 3 1.2.1 Robots协议 4 1.2.2 网络爬虫的约束 5 1.3 网络爬虫的基本议题 6 1.3.1 Python爬虫的流程 7 1.3.2 三个流程的技术实现 7 第2章 编写第一个网络爬虫 8 2.1 搭建Python平台 9 2.1.1 Python的安装 9 2.1.2 使用pip安装第三方库 10 2.1.3 使用编译器Jupyter编程 11 2.2 Python使用入门 13 2.2.1 基本命令 13 2.2.2 数据类型 14 2.2.3 条件语句和循环语句 15 2.2.4 函数 16 2.2.5 面向对象编程 17 2.3 编写第一个简单的爬虫 21 2.3.1 第一步:获取页面 22 2.3.2 第二步:提取需要的数据 23 2.3.3 第三步:存储数据 24 2.4 Python实践:基础巩固 25 2.4.1 Python基础试题 26 2.4.2 参考答案 27 2.4.3 自我实践题 30 第3章 静态网页抓取 31 3.1 安装Requests 32 3.2 获取响应内容 32 3.3 定制Requests 33 3.3.1 传递URL参数 33 3.3.2 定制请求头 34 3.3.3 发送POST请求 35 3.3.4 超时 36 3.4 Requests爬虫实践:TOP250电影数据 36 3.4.1 网站分析 37 3.4.2 项目实践 37 3.4.3 自我实践题 39 第4章 动态网页抓取 40 4.1 动态抓取的实例 41 4.2 解析真实地址抓取 42 4.3 通过Selenium模拟浏览器抓取 47 4.3.1 Selenium的安装与基本介绍 47 4.3.2 Selenium的实践案例 48 4.3.3 Selenium获取文章的所有评论 49 4.3.4 Selenium的高级操作 52 4.4 Selenium爬虫实践:深圳短租数据 55 4.4.1 网站分析 55 4.4.2 项目实践 57 4.4.3 自我实践题 60 第5章 解析网页 61 5.1 使用正则表达式解析网页 62 5.1.1 re.match方法 62 5.1.2 re.search方法 64 5.1.3 re.fmdall方法 64 5.2 使用BeautifulSoup解析网页 66 5.2.1 BeautifUlSoup的安装 66 5.2.2 使用BeautifolSoup获取博客标题 67 5.2.3 BeautifUlSoup的其他功能 68 5.3 使用lxml解析网页 72 5.3.1 lxml的安装 72 5.3.2 使用lxml获取博客标题 72 5.3.3 XPath的选取方法 74 5.4 麟 75 5.5 BeautiflilSoup爬虫实践:房屋价格数据 76 5.5.1 网站分析 76 5.5.2 项目实践 77 5.5.3 自我实践题 79 第6章 数据存储 80 6.1 基本存储:存储至TXT或CSV 81 6.1.1 把数据存储至TXT 81 6.1.2 把数据存储至CSV 82 6.2 存储至MySQL数据库 84 6.2.1 下载安装MySQL 85 6.2.2 MySQL的基本操作 88 6.2.3 Python操作MySQL数据库 92 6.3 存储至MongoDB数据库 94 6.3.1 下载安装MongoDB 95 6.3.2 MongoDB的基本概念 98 6.3.3 Python操作MongoDB数据库 99 6.3.4 RoboMongo的安装与使用 101 6.4 总结 102 6.5 MongoDB爬虫实践:虎扑论坛 103 6.5.1 网站分析 103 6.5.2 项目实践 104 6.5.3 自我实践题 110 第7章 提升爬虫的速度 111 7.1 并发和并行,同步和异步 112 7.1.1 并发和并行 112 7.1.2 同步和异步 112 7.2 多线程爬虫 113 7.2.1 简单单线程爬虫 114 7.2.2 学习Python多线程 114 7.2.3 简单的多线程爬虫 117 7.2.4 使用Queue的多线程爬虫 120 7.3 多进程爬虫 122 7.3.1 使用multiprocessing的多进程爬虫 122 7.3.2 使用Pool+Queue的多进程爬虫 124 7.4 多协程爬虫 127 7.5 总结 129 7.5.1 回顾多线程、多进程、多协程 129 7.5.2 性能对比 130 第8章 反爬虫问题 132 8.1 为什么会被反爬虫 133 8.2 反爬虫的方式有哪些 133 8.2.1 不返回网页 134 8.2.2 返回非目标网页 134 8.2.3 获取数据变难 135 8.3 如何“反反爬虫” 135 8.3.1 修改请求头 135 8.3.2 修改爬虫的间隔时间 136 8.3.3 使用代理 139 8.4 总结 140 第9章 解决中文乱码 141 9.1 什么是字符编码 142 9.2 Python的字符编码encode和decode 144 9.3 解决中文编码问题 146 9.3.1 问题1:获取网站的中文显示乱码 147 9.3.2 问题2:非法字符抛出异常 148 9.3.3 问题3:网页使用gzip压缩 149 9.3.4 问题4:读写文件的中文乱码 150 9.4 总结 152 第10章 登录与验证码处理 153 10.1 处理登录表单 154 10.1.1 处理登录表单 154 10.1.2 处理cookies,让网页记住你的登录 158 10.1.3 完整的登录代码 160 10.2 验证码的处理 162 10.2.1 如何使用验证码验证 163 10.2.2 人工方法处理验证码 164 10.2.3 OCR处理验证码 167 10.3 总结 169 第11章 服务器采集 170 11.1 为什么使用服务器釆集 171 11.1.1 大规模爬虫的需要 171 11.1.2 防止IP地址被封杀 171 11.2 使用动态IP拨号服务器 172 11.2.1 购买拨号服务器 172 11.2.2 登录服务器 172 11.2.3 使用Python更换IP 174 11.2.4 结合爬虫和更换IP功能 175 11.3 使用Tor代理服务器 176 11.3.1 Tor的安装 177 11.3.2 Tor的使用 180 第12章 分布式爬虫 184 12.1 安装Redis 185 12.2 修改Redis配置 188 12.2.1 修改Redis密码 188 12.2.2 让Redis服务器被远程访问 188 12.2.3 使用RedisDesktopManager管理 189 12.3 Redis分布式爬虫实践 189 12.3.1 安装Redis库 190 12.3.2 加入任务队列 190 12.3.3 读取任务队列并下载图片 191 12.3.4 分布式爬虫代码 192 12.4 总结 194 第13章 爬虫实践一:维基百科 195 13.1 项目描述 196 13.1.1 项目目标 196 13.1.2 项目描述 196 13.1.3 深度优先和广度优先 198 13.2 网站分析 199 13.3 项目实施:深度优先的递归爬虫 201 13.4 项目进阶:广度优先的多线程爬虫 203 13.5 总结 207 第14章 爬虫实践二:知乎Live 208 14.1 项目描述 209 14.2 网站分析 209 14.3 项目实施 212 14.3.1 获取所有Live 212 14.3.2 获取Live的听众 215 14.4 总结 218 第15章 爬虫实践三:百度地图API 219 15.1 项目描述 220 15.2 获取API秘钥 221 15.3 项目实施 222 15.3.1 获取所有拥有公园的城市 224 15.3.2 获取所有城市的公园数据 225 15.3.3 获取所有公园的详细信息 229 15.4 总结 233 第16章 爬虫实践四:餐厅点评 234 16.1 项目描述 235 16.2 网站分析 235 16.3 项目实施 237 16.3.1 获取深圳的餐厅列表 237 16.3.2 获取餐厅的详细信息 242 16.4 总结 244

2018-10-25

自制编程语言-扫描版-带完整书签.pdf

带完整书签 第1章 引子 001 1.1 为什么要制作编程语言 002 1.2 自制编程语言并不是很难 003 1.3 本书的构成与面向读者 004 1.4 用什么语言来制作 006 1.5 要制作怎样的语言 007 1.5.1 要设计怎样的语法 007 1.5.2 要设计怎样的运行方式 009 补充知识 “用户”指的是谁? 012 补充知识 解释器并不会进行翻译 012 1.6 环境搭建 012 1.6.1 搭建开发环境 012 补充知识 关于bison与flex的安装 014 1.6.2 本书涉及的源代码以及编译器 015 第2章 试做一个计算器 017 2.1 yacc/lex是什么 018 补充知识 词法分析器与解析器是各自独立的 019 2.2 试做一个计算器 020 2.2.1 lex 021 2.2.2 简单正则表达式讲座 024 2.2.3 yacc 026 2.2.4 生成执行文件 033 2.2.5 理解冲突所代表的含义 034 2.2.6 错误处理 040 2.3 不借助工具编写计算器 041 2.3.1 自制词法分析器 041 补充知识 保留字(关键字) 046 补充知识 避免重复包含 047 2.3.2 自制语法分析器 048 补充知识 预读记号的处理 053 2.4 少许理论知识——LL(1)与LALR(1) 054 补充知识 Pascal/C中的语法处理诀窍 056 2.5 习题:扩展计算器 056 2.5.1 让计算器支持括号 056 2.5.2 让计算器支持负数 058 第3章 制作无类型语言crowbar 061 3.1 制作crowbarver.0.1 语言的基础部分 062 3.1.1 crowbar是什么 062 3.1.2 程序的结构 063 3.1.3 数据类型 064 3.1.4 变量 064 补充知识 初次赋值兼做变量声明的理由 066 补充说明 各种语言的全局变量处理 067 3.1.5 语句与结构控制 067 补充知识 elif、elsif、elseif的选择 068 3.1.6 语句与运算符 069 3.1.7 内置函数 069 3.1.8 让crowbar支持C语言调用 070 3.1.9 从crowbar中调用C语言(内置函数的编写) 071 3.2 预先准备 071 3.2.1 模块与命名规则 072 3.2.2 内存管理模块MEM 073 补充知识 valgrind 075 补充知识 富翁式编程 075 补充知识 符号表与扣留操作 076 3.2.3 调试模块DBG 076 3.3 crowbarver.0.1 的实现 077 3.3.1 crowbar的解释器——CRB_Interpreter 077 补充知识 不完全类型 080 3.3.2 词法分析——crowbar.l 081 补充知识 静态变量的许可范围 084 3.3.3 分析树的构建——crowbar.y与create.c 085 3.3.4 常量折叠 089 3.3.5 错误信息 089 补充知识 关于crowbar中使用的枚举型定义 091 3.3.6 运行——execute.c 092 3.3.7 表达式评估——eval.c 096 3.3.8 值——CRB_Value 104 3.3.9 原生指针型 105 3.3.1 0变量 106 3.3.1 1字符串与垃圾回收机制——string_pool.c 108 3.3.1 2编译与运行 110 第4章 数组和mark-sweep垃圾回收器 113 4.1 crowbarver. 0.2 114 4.1.1 crowbar的数组 114 4.1.2 访问数组元素 115 4.1.3 数组是一种引用类型 116 补充知识 “数组的数组”和多维数组 116 4.1.4 为数组添加元素 118 4.1.5 增加(模拟)函数调用功能 118 4.1.6 其他细节 118 4.2 制作mark-sweepGC 119 4.2.1 引用数据类型的结构 119 4.2.2 mark-sweepGC 121 补充知识 引用和immutable 123 4.2.3 crowbar栈 124 4.2.4 其他根 127 4.2.5 原生函数的形式参数 128 4.3 实现GC本身 129 4.3.1 对象的管理方法 129 4.3.2 GC何时启动 129 4.3.3 sweep阶段 132 补充知识 GC现存的问题 133 补充知识 CopingGC 134 4.4 其他修改 136 4.4.1 修改语法 136 4.4.2 函数的模拟 137 4.4.3 左值的处理 139 4.4.4 创建数组和原生函数的书写方法 142 4.4.5 原生指针类型的修改 144 第5章 中文支持和Unicode 147 5.1 中文支持策略和基础知识 148 5.1.1 现存问题 148 5.1.2 宽字符(双字节)串和多字节字符串 149 补充知识 wchar_t肯定能表示1个字符吗? 150 5.1.3 多字节字符/宽字符之间的转换函数群 150 5.2 Unicode 153 5.2.1 Unicode的历史 153 5.2.2 Unicode的编码方式 154 补充知识 Unicode可以固定(字节)长度吗? 156 5.3 crowbarbook_ver.0.3 的实现 156 5.3.1 要实现到什么程度? 156 5.3.2 发起转换的时机 157 5.3.3 关于区域设置 158 5.3.4 解决0x5C问题 158 补充知识 失败的#ifdef 160 5.3.5 应该是什么样子 160 补充知识 还可以是别的样子——CodeSetIndependent 161 第6章 制作静态类型的语言Diksam 163 6.1 制作DiksamVer0.1 语言的基本部分 164 6.1.1 Diksam的运行状态 164 6.1.2 什么是Diksam 165 6.1.3 程序结构 165 6.1.4 数据类型 166 6.1.5 变量 166 6.1.6 语句和流程控制 167 6.1.7 表达式 167 6.1.8 内建函数 168 6.1.9 其他 168 6.2 什么是静态的/执行字节码的语言 169 6.2.1 静态类型的语言 169 6.2.2 什么是字节码 169 6.2.3 将表达式转换为字节码 170 6.2.4 将控制结构转换为字节码 173 6.2.5 函数的实现 173 6.3 Diksamver.0.1 的实现——编译篇 175 6.3.1 目录结构 175 6.3.2 编译的概要 176 6.3.3 构建分析树(create.c) 176 6.3.4 修正分析树(fix_tree.c) 179 6.3.5 Diksam的运行形式——DVM_Executable 185 6.3.6 常量池 186 补充知识 YARV的情况 187 6.3.7 全局变量 188 6.3.8 函数 189 6.3.9 顶层结构的字节码 189 6.3.1 0行号对应表 190 6.3.1 1栈的需要量 190 6.3.1 2生成字节码(generate.c) 191 6.3.1 3生成实际的编码 193 6.4 Diksam虚拟机 197 6.4.1 加载/链接DVM_Executable到DVM 200 6.4.2 执行——巨大的switchcase 202 6.4.3 函数调用 204 第7章 为Diksam引入数组 207 7.1 Diksam中数组的设计 208 7.1.1 声明数组类型的变量 208 7.1.2 数组常量 209 补充知识 D语言的数组 210 7.2 修改编译器 210 7.2.1 数组的语法规则 210 7.2.2 TypeSpecifier结构体 212 7.3 修改DVM 213 7.3.1 增加指令 213 补充知识 创建Java的数组常量 215 补充知识 C语言中数组的初始化 217 7.3.2 对象 217 补充知识 ArrayStoreException 218 7.3.3 增加null 219 7.3.4 哎!还缺点什么吧? 219 第8章 将类引入Diksam 221 8.1 分割源文件 222 8.1.1 包和分割源代码 222 补充知识 #include、文件名、行号 225 8.1.2 DVM_ExecutableList 225 8.1.3 ExecutableEntry 226 8.1.4 分开编译源代码 227 8.1.5 加载和再链接 230 补充知识 动态加载时的编译器 233 8.2 设计Diksam中的类 233 8.2.1 超简单的面向对象入门 233 8.2.2 类的定义和实例创建 237 8.2.3 继承 239 8.2.4 关于接口 241 8.2.5 编译与接口 242 8.2.6 Diksam怎么会设计成这样? 243 8.2.7 数组和字符串的方法 245 8.2.8 检查类的类型 246 8.2.9 向下转型 246 8.3 关于类的实现——继承和多态 247 8.3.1 字段的内存布局 247 8.3.2 多态——以单继承为前提 249 8.3.3 多继承——C++ 250 8.3.4 Diksam的多继承 252 补充知识 无类型语言中的继承 254 8.3.5 重写的条件 254 8.4 关于类的实现 256 8.4.1 语法规则 256 8.4.2 编译时的数据结构 258 8.4.3 DVM_Executable中的数据结构 260 8.4.4 与类有关的指令 262 补充知识 方法调用、括号和方法指针 263 8.4.5 方法调用 264 8.4.6 super 266 8.4.7 类的链接 266 8.4.8 实现数组和字符串的方法 267 8.4.9 类型检查和向下转型 267 补充知识 对象终结器(finalizer)和析构函数(destructor) 268 第9章 应用篇 271 9.1 为crowbar引入对象和闭包 272 9.1.1 crowbar的对象 272 9.1.2 对象实现 273 9.1.3 闭包 274 9.1.4 方法 276 9.1.5 闭包的实现 278 9.1.6 试着跟踪程序实际执行时的轨迹 281 9.1.7 闭包的语法规则 284 9.1.8 普通函数 284 9.1.9 模拟方法(修改版) 285 9.1.1 0基于原型的面向对象 286 9.2 异常处理机制 286 9.2.1 为crowbar引入异常 286 9.2.2 setjmp()/longjmp() 289 补充知识 Java和C#异常处理的不同 293 9.2.3 为Diksam引入异常 295 补充知识 catch的编写方法 296 9.2.4 异常的数据结构 297 9.2.5 异常处理时生成的字节码 299 9.2.6 受查异常 301 补充知识 受查异常的是与非 303 补充知识 异常处理本身的是与非 304 9.3 构建脚本 305 9.3.1 基本思路 306 9.3.2 YY_INPUT 307 9.3.3 Diksam的构建脚本 308 9.3.4 三次加载/链接 308 9.4 为crowbar引入鬼车 309 9.4.1 关于“鬼车” 309 9.4.2 正则表达式常量 310 9.4.3 正则表达式的相关函数 311 9.5 其他 312 9.5.1 foreach和迭代器(crowbar) 312 9.5.2 switchcase(Diksam) 314 9.5.3 enum(Diksam) 315 9.5.4 delegate(Diksam) 316 9.5.5 final、const(Diksam) 319 附录A crowbar语言的设计 322 附录B Diksam语言的设计 336 附录C DiksamVirtualMachine指令集 359 编程语言实用化指南——写在最后 369 参考文献 375

2018-07-18

算法 第4版-谢路云译-带完整书签

本书带完整书签 第1章 基础 1 1.1 基础编程模型 4 1.1.1 Java程序的基本结构 4 1.1.2 原始数据类塑与表达式 6 1.1.3 语句 8 1.1.4 简便记法 9 1.1.5 数组 10 1.1.6 静态方法 12 1.1.7 API 16 1.1.8 字符串 20 1.1.9 输入输出 21 1.1.10 二分査找 28 1.1.11 展望 30 1.2 数据抽象 38 1.2.1 使用抽象数据类型 38 1.2.2 抽象数据类型举例 45 1.2.3 抽象教据类型的实现 52 1.2.4 更多抽象数据类型的实现 55 1.2.5 数据类型的设计 60 1.3 背包、队列和栈 74 1.3.1 API 74 1.3.2 集合类數据类型的实现 81 1.3.3 链表 89 1.3.4 综述 98 1.4 算法分析 108 1.4.1 科学方法 108 1.4.2 观察 108 1.4.3 数学模型 112 1.4.4 增长数量级的分类 117 1.4.5 设计更快的算法 118 1.4.6 倍率实验 121 1.4.7 注意事项 123 1.4.8 处理对于输入的依赖 124 1.4.9 内存 126 1.4.10 展望 129 1.5 案例研究:union-find算法 136 1.5.1 动态连通性 136 1.5.2 实现 140 1.5.3 展望 148 第2章 排序 152 2.1 初级排序算法 153 2.1.1 游戏规则 153 2.1.2 选择排序 155 2.1.3 插入排序 157 2.1.4 排序算法的可视化 159 2.1.5 比较两种排序算法 159 2.1.6 希尔排序 162 2.2 归并排序 170 2.2.1 原地归并的抽象方法 170 2.2.2 自顶向下的归并排序 171 2.2.3 自底向上的归并排序 175 2.2.4 排序算法的复杂度 177 2.3 快速排序 182 2.3.1 基本算法 182 2.3.2 性能特点 185 2.3.3 算法改进 187 2.4 优先队列 195 2.4.1 API 195 2.4.2 初级实现 197 2.4.3 堆的定义 198 2.4.4 堆的算法 199 2.4.5 堆排序 205 2.5 应用 214 2.5.1 将各种數据排序 214 2.5.2 我应该使用啷种排序算法 218 2.5.3 问题的归约 219 2.5.4 排序应用一览 221 第3章查找 227 3.1 符号表 228 3.1.1 API 228 3.1.2 有序符号表 230 3.1.3 用例举例 233 3.1.4 无序链表中的顺序查找 235 3.1.5 有序數组中的二分查找 238 3.1.6 对二分査找的分析 242 3.1.7 预览 244 3.2 二叉查找树 250 3.2.1 基本实现 250 3.2.2 分析 255 3.2.3 有序性相关的方法与删除操作 257 3.3 平衡査找树 269 3.3.1 2-3査找树 269 3.3.2 红黑二叉查找树 275 3.3.3 实现 280 3.3.4 删除操作 282 3.3.5 红黑树的性质 284 3.4 散列表 293 3.4.1 散列函数 293 3.4.2 基于拉链法的散列表 297 3.4.3 基于线性探测法的散列表 300 3.4.4 调整教组大小 304 3.4.5 内存使用 306 3.5 应用 312 3.5.1 我应该使用符号表的哪种实现 312 3.5.2 集合的API 313 3.5.3 字典类用例 315 3.5.4 索引类用例 318 3.5.5 稀疏向量 322 第4章 图 329 4.1 无向图 331 4.1.1 术语表 331 4.1.2 表示无向图的数据类型 333 4.1.3 深度优先搜索 338 4.1.4 寻找路径 342 4.1.5 广度优先搜索 344 4.1.6 连通分量 349 4.1.7 符号图 352 4.1.8 总结 358 4.2 有向图 364 4.2.1 术语 364 4.2.2 有向图的数据类型 365 4.2.3 有向图中的可达性 367 4.2.4 环和有向无环图 369 4.2.5 有向图中的强连通性 378 4.2.6 总结 385 4.3 最小生成树 390 4.3.1 原理- 391 4.3.2 加权无向图的数据类型 393 4.3.3 最小生成树的API和测试用例 396 4.3.4 Prim算法 398 4.3.5 Prim算法的即时实现 401 4.3.6 Kruskal算法 404 4.3.7 展望 407 4.4 最短路径 412 4.4.1 最短路径的性质 413 4.4.2 加权有向图的数据结构 414 4.4.3 最短路径算法的理论基础 420 4.4.4 Dijkstra算法 421 4.4.5 无环加权有向图中的最短路径算法 425 4.4.6 一般加权有向图中的最短路径问题 433 4.4.7 展望 445 第5章 字符串 451 5.1 字符串排序 455 5.1.1 键索引计数法 455 5.1.2 低位优先的字符串排序 458 5.1.3 高位优先的字符串排序 461 5.1.4 三向字符串快速排序 467 5.1.5 字符串排序算法的选择 470 5.2 单词查找树 474 5.2.1 单词查找树 475 5.2.2 单词查找树的性质 483 5.2.3 三向单词查找树 485 5.2.4 三向单词查找树的性质 487 5.2.5 应该使用字符串符号表的哪种实现 489 5.3 子字符串查找 493 5.3.1 历史简介 493 5.3.2 暴力子字符串査找算法 494 5.3.3 Knuth-Morris-Pratt子字符串查找算法 496 5.3.4 Boyer-Moore字符串查找算法 502 5.3.5 Rabin-Karp指纹字符串查找算法 505 5.3.6 总结 509 5.4 正则表达式 514 5.4.1 使用正则表达式描述模式 514 5.4.2 缩略写法 516 5.4.3 正则表达式的实际应用 517 5.4.4 非确定有限状态自动机 518 5.4.5 模拟NFA的运行 520 5.4.6 构造与正则表达式对应的NFA 522 5.5 数据压缩 529 5.5.1 游戏规则 529 5.5.2 读写二进制数据 530 5.5.3 局限 533 5.5.4 热身运动:基因组 534 5.5.5 游程编码 537 5.5.6 霍夫曼压缩 540 第6章背景 558 索引 611

2018-07-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除