[Design Pattern]抽象工厂模式

什么是抽象工厂模式

上篇博客已经介绍了工厂模式,这里要介绍的是抽象工厂模式,它是工厂模式的父类工厂,可以创建其他的工厂。抽象工厂模式(Abstract Factory Pattern)是另一种软件开发设计模式。抽象工厂模式提供了一种方式,可以将一组具有同一主题的单独的工厂封装起来。抽象工厂模式其实就是在工厂模式之上增加了一层抽象的概念。

阅读全文

[DesignPattern]FactoryPattern

什么是工厂模式

工厂模式(Factory Pattern) 的意义和它的名字一样,在面向对象程序设计中,工厂通常是一个用来创建其他对象的对象。工厂模式更具不同的参数来实现不同的分配方案和创建对象。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且通过使用一个公共接口来指向新创建的对象。例如用工厂来创建人这个对象,如果我们需要创建一个男人对象,工厂就会为我们创建一个男人;如果我们需要一个女人,工厂就会为我们生产一个女人。

阅读全文

[Python3爬虫]selenium+chromedriver可见即可爬

动态加载页面信息的提取[二]

上一遍博客介绍了Ajax的分析和抓取方式,这只是JavaScript动态渲染的页面的一种情形。JavaScript动态渲染的页面不止Ajax这一种。比如中国青年网 http://news.youth.cn/gn/
,它的分页部分是由JavaScript生成的,并非原始HTML代码,这其中并不包含Ajax请求。还有淘宝的页面,它即使通过Ajax获取数据,但是其Ajax接口含有很多加密参数,我们难以直接找出其规律,也很难直接分析Ajax来抓取。

阅读全文

[Python3]Ajax请求信息的爬取

动态加载页面信息的提取

当我们浏览一个新闻类的网站,例如微博,今日头条,知乎等,由于它的内容极多,当我们搜索某一关键词的信息后,服务器只会向我们返回少量的数据,微博和头条是返回指定数量的数据,当我们再次向下刷新的时候,会再次通过Ajax请求返回指定数目的数据(如果你的网络不好时,会出现一个表示正在加载的小圆圈的动画效果)。知乎是当浏览器的滚动条触底时,再次提取数据。这就产生了一个问题,通过爬虫如何来提取通过Ajax请求动态加载的数据呢?

阅读全文

[Python3爬虫]Beautiful Soup解析库

解析库与Beautiful Soup

通过request库,我们已经能够抓取网页信息了,但要怎么提取包含在Html代码里面的有效信息呢?谈到匹配有效信息你肯定会想到正则表达式,这里就不讨论了,实际上关于正则表达式已经可以写一本书了,并且由于网页特殊的层级结构,也没必要使用正则表达式。python提供更好用的html和xml的解析库Beautiful Soup 和XPath等。

阅读全文

[数据结构]Josephus problem

1.Josepus问题

约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列,类似于丢手绢。

阅读全文

[Python3爬虫]Requests库高级用法

1.cookies

对于需要登录的网站该如何爬取呢?例如知乎,如果访问https://www.zhihu.com/,是需要我们登录才能进入知乎网的,有时候我们又会发现,由于之前登录过,再次登录的时候便不需要输入密码了这就涉及到cookies
了,cookies在网站开发时,或多或是少一定会用到,以知乎为例,当我们提问,评论,赞别人的时候,后台程序是如何获取我们的用户信息呢?下次登录不需要用户名和密码会自动登录又是为什么呢?

阅读全文

[Python3爬虫]requests库基本使用

1.request是什么

Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用。警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症、冗余代码症、重新发明轮子症、啃文档症、抑郁、头疼、甚至死亡。 ——requests中文文档

阅读全文

Mariadb基本配置

mysql与mariadb

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险.大型互联网用户以及Linux发行商纷纷抛弃MySQL,转投MariaDB阵营。MariaDB是目前最受关注的MySQL数据库衍生版,也被视为开源数据库MySQL的替代品。MariaDB虽然被视为MySQL数据库的替代品,但它在扩展功能、存储引擎以及一些新的功能改进方面都强过MySQL

阅读全文

ORACLE之视图和系统函数

视图

视图是什么?

视图(View)是从一个或多个表(或视图)导出的表。视图与数据库中的物理表不同,视图是一个虚表(它的本质是一个SQL查询),即视图所对应的数据不进行实际存储,数据库中只存储视图的定义,在对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的基本表。

阅读全文