Scrapy 是用 Python 实现的一个为了爬取网站数据、提取结构性数据而编写的应用框架。 Scrapy 常应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。 通常我们可以很简单的通过 Scrapy 框架实现一个爬虫,抓取指定网站的内容或图片。 Scrapy架构图(绿线是数据流向) Scrapy Engine(引擎): 负责Spider、ItemPipeline、Downloader、Scheduler中间的通..
C# 变量初始化是 C# 强调安全性的另一个例子。简单地说,C# 编译器需要用某个初始值对变量进行初始化,之后才能在操作中引用该变量。大多数现代编译器把没有初始化标记为警告,但C#编译器把它当作错误来看待。这就可以防止我们无意中从其他程序遗留下来的内存中获取垃圾值。 C# 变量初始化的操作中有两个方法可确保变量在使用前进行了初始化: 变量是类或结构中的字段,如果没有显式初始化,创建这些变量时,其值就默认是 0(类和结构在后面讨论)。..
一、快速失败(fail—fast) 在用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了修改(增加、删除、修改),则会抛出 Concurrent Modification Exception。 原理:迭代器在遍历时直接访问集合中的内容,并且在遍历过程中使用一个 modCount 变量。集合在被遍历期间如果内容发生变化,就会改变 modCount 的值。每当迭代器使用 hashNext()/next() 遍历下一个元素之..
const 是 constant 的缩写,本意是不变的,不易改变的意思。在 C++ 中是用来修饰内置类型变量,自定义对象,成员函数,返回值,函数参数。 C++ const 允许指定一个语义约束,编译器会强制实施这个约束,允许程序员告诉编译器某值是保持不变的。如果在编程中确实有某个值保持不变,就应该明确使用const,这样可以获得编译器的帮助。 一、const修饰普通类型的变量 const int a = 7; int b..
本章节我们将为大家介绍如何在 Java 语言中使用 JSON。 类库选择 Java中并没有内置JSON的解析,因此使用JSON需要借助第三方类库。 下面是几个常用的 JSON 解析类库: Gson: 谷歌开发的 JSON 库,功能十分全面。FastJson: 阿里巴巴开发的 JSON 库,性能十分优秀。Jackson: 社区十分活跃且更新速度很快。 以下教程基于 FastJson 讲解。 环境配置 在 Maven 构建的项目中,..
在 JS 中,对于某个由 JSON 对象组成的数组,例如: var test = [{ 'a': '1', 'b': '2' }, { 'a': '3', 'b': '4' }, { 'a': '5', 'b':
C 语言标准(C89) 没有定义布尔类型,如果你使用 true 和 false,会出现以下错误: infinite.c:5:12: error: use of undeclared identifier 'true' while (true) { 1 error generated. make: *** [infinite] Error 1 我们可以借助 C 语言的宏定义来哦设置: [mycode3..
一、二进制数转换成十进制数 由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为'按权相加'法。 例如把二进制数 110.11 转换成十进制数。 二、十进制数转换为二进制数 十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。 1. 十进制整数转换为二进制整数 十进制整数转换为二进制整数..
1、(-1)^s 表示符号位,当 s=0,V 为正数;当 s=1,V 为负数 2、M 表示有效数字,大于等于 1,小于 2。 3、2^E 表示指数位。 举例来说,十进制的5.0,写成二进制是101.0,相当于1.01×2^2。那么,按照上面V的格式,可以得出 s=0,M=1.01,E=2。 IEEE 754 规定,对于 32 位的浮点数,最高的 1 位是符号位 s,接着的 8 位是指数 E,剩下的 23 位为有效数字 M。 ..
捕获组分为: 普通捕获组(Expression) 命名捕获组(?Expression) 普通捕获组 从正则表达式左侧开始,每出现一个左括号“(”记做一个分组,分组编号从 1 开始。0 代表整个表达式。 对于时间字符串:2017-04-25,表达式如下 (\\d{4})-((\\d{2})-(\\d{2})) 有 4 个左括号,所以有 4 个分组: 编号 捕获组 匹配 0 (\d{4})-((\d..