python基础知识

集合容器列表:

list是一种有序的集合,可以随时添加和删除其中的元素、列表可以存放各种类型的   

数据列表包含了增删改查:

查:index[值]下标查询 、

列表.count[值]统计值在列表中出现的次数 

len(列表)查看长度增:

列表.append(值)。向列表添加值  

列表.extend(值),向列表末尾增加另一个列表的值删:

列表.pop(下标) 根据下标删除,并返回次元素。

列表.remove(值) 元素的值删除单下划线和双下划线的区别:

__foo__:一种约定,Python内部的名字,用来区别其他用户自定义的命名,以防冲突.

_foo:一种约定,用来指定变量私有.程序员用来指定私有变量的一种方式,

函数

不可变参数:整数、字符串,元祖,

函数可变的参数:列表、字典局部变量:

在函数内部定义的变量全局变量:能在多个函数中使用就要使用全局变量了,使用globa声明

浅拷贝:浅拷贝是对于一个对象的顶层拷贝

深拷贝:是对于一个对象所有层次的拷贝

Is与==的区别:is是对比地址,==是对比值

迭代器和生成器:一边循环一边计算的机制叫做生成器,可以通过next()函数调用的叫做迭代器,迭代器和生成器都可以用for循环遍历出来里面的值 

闭包:闭包的特点提高了代码的可重复使用性

1、必须有一个内嵌函数

2、外部函数必须返回内嵌函数——必须返回那个内部函数

3、外部函数的返回值必须是内嵌函数

 lambda函数:是一个匿名函数,一般函数作为参数,只调用一次,就可以简写面向对象面向对象的理解:

面向对象是一种设计思想符合人们的思考习惯

把执行者变为指挥者

简化功能、把复杂的简单化

面向过程:根据业务逻辑从上往下写的代码、强调的是过程与步骤

面向对象:将数据和函数绑定到一起进行封装使用,减少了代码的重复使用

装饰器:经常被用于有切面需求的场景,较为经典的有插入日志、性能测试、事务处理等。概括就是为已存在的对象添加新的功能,在不改变原来的代码

新式类和经典类的区别:新式类是在创建中继承内置的object对象、经典类是直接声明的

面向对象的特征:封装、继承、多态封装:类是一种封装,将属性和方法封装。

函数也是一种封装,将具有一定共的逻辑代码封装到一个函数中,使用的时候调用即可提高代码的扩展性

继承:将公共的(共性的)属性和方法放在父类中,子类只关注自己特有的属性和方法。提高代码的扩展性。

多态:

1、python支持多态,python是一个弱类型,本身一个变量名,可以存储任何类型的值,可以理解为多种形态

2、python不支持多态,多态本身是用于强类型语言的,python是一个弱类型,所以不支持多态类与对象的理解:类是对象的描述、对象是类的具体体现

类变量和实例变量:类变量是给类使用的变量,实例变量是给实例使用的变量元类是用来创建类的东西,

设计模式的六大原则: 单一原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特原则、开闭原则几个常用的设计模式:装饰器模式、单例模式、工厂模式、原型模式、外观模式 网络编程UDP:是一个无连接的简单的面向数据报的运输层协议

UDP:不提供可靠性,只负责传送数据,并不能保证对面能不能接受,传输速度快网络

四层协议:应用层、传输层、网络层、网络接入层网络

七层协议:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层

TCP:需要建立连接才能进行数据的传输

TCP三次握手:是客户端与服务器建立连接的请求,由客服端发起

TCP四次挥手:是客户端与服务器断开连接发送的请求,也是由客户端发起的

TCP中的长链接:可以省去繁琐的TCP建立与断开、给客户一个良好的体验环境

TCP中的短链接:则需要不停的断开与链接可以减少服务器的压力,但是客户体验感极差

HTTP:是超文本传输协议的缩写、是一个基于TCP/IP通信协议来传递数据、是一个应用层协议、永远都是客户端发起请求的

TCP与HTTP的区别:TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据

HTTPS:是以安全为目的的HTTP通道,在HTTP上进行了数据的加密系统编程

同步:同时访问同一资源,等待前一个资源访问结束后下一个访问才能继续进行访问,浪费时间,效率低

异步:在访问资源时后一个程序不用等待前一个程序结束后执行,可以同时进行多个线程的运行,从而实现多进行的操作

进程:进程是系统进行资源分配和调度的一个独立单位.

线程:线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,线程不能够独立执行,必须依存在进程中线程

全局锁:为了保证线程安全而采取的独立线程运行的限制,说白了就是一个核只能在同一时间运行一个线程

协程:协程是进程和线程的升级版,进程和线程都面临着内核态和用户态的切换问题而耗费许多切换时间,而协程就是用户自己控制切换的时机,不再需要陷入系统的内核态

Cookie储存在客户端,用于客户会话跟踪,不安全

Session储存在服务端,跟踪会话,安全

数据库

操作事物:是指作为单个逻辑工作单元执行的一系列操作,要么完全执行,要么就不执行

索引:索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息

悲观锁:假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作

乐观锁:假设不会发生并发冲突,只在提交操作时检查是否违反数据完整性

爬虫编程

了解爬虫:是通过程序的方式,自动采集数据;程序操作比自然人的操作效率高出很多很多倍

反爬虫机制:请求认证、用户行为认证、检测结果处理

如何应对反爬虫机制:User-agent伪造、通过随机休眠时间、代理IP

动态加载:Ajax是与在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页的技术

爬虫的分类:

 通用爬虫、 捜索引擎抓取系统的重要的组成部分,主要是将互联网上的网页下载到本地

聚焦爬虫、针对某种内容的爬虫,是一种面向需求是的爬虫是大部分程序员用的

累积爬虫、

增量爬虫、累积式抓取是指从某一个时间点开始,通过遍历的方式抓取系统所能允许存储和处理的所有网页 

scrapy五个模块:spider爬虫模块,engin引擎模块,调度模块,download下载模块 pipliene管道模块、下载器中间件、爬虫中间件

引擎(Scrapy):用来处理整个系统的数据流处理, 触发事务(框架核心)

调度器(Scheduler):用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回. 可以想像成一个URL(抓取网页的网址或者说是链接)的优先队列, 由它来决定下一个要抓取的网址是什么, 同时去除重复的网址

下载器(Downloader):用于下载网页内容, 并将网页内容返回给蜘蛛(Scrapy下载器是建立在twisted这个高效的异步模型上的)

爬虫(Spiders):爬虫是主要干活的, 用于从特定的网页中提取自己需要的信息, 即所谓的实体(Item)。用户也可以从中提取出链接,让Scrapy继续抓取下一个页面

项目管道(Pipeline):负责处理爬虫从网页中抽取的实体,主要的功能是持久化实体、验证实体的有效性、清除不需要的信息。当页面被爬虫解析后,将被发送到项目管道,并经过几个特定的次序处理数据。

下载器中间件(Downloader Middlewares):位于Scrapy引擎和下载器之间的框架,主要是处理Scrapy引擎与下载器之间的请求及响应。

爬虫中间件(Spider Middlewares):介于Scrapy引擎和爬虫之间的框架,主要工作是处理蜘蛛的响应输入和请求输出。

调度中间件(Scheduler Middewares):介于Scrapy引擎和调度之间的中间件,从Scrapy引擎发送到调度的请求和响应

下载中间件与爬虫中间件的区别:下载中间件主要是处理Scrapy引擎与下载器之间的请求及响应,爬虫中间件主要用于爬虫的响应输入与请求输出。

 Scrapy具体运行流程:

1、引擎从调度器中取出一个链接(URL)用于接下来的抓取

2、引擎把URL封装成一个请求(Request)传给下载器

3、下载器把资源下载下来,并封装成应答包(Response)

4、爬虫解析Response

5、解析出实体(Item),则交给实体管道进行进一步的处理6、解析出的是链接(URL),则把URL交给调度器等待抓取 

我对scrapy的理解:爬虫模块将要爬取的URL交给引擎模块处理,引擎模块处理完后将目标地址交给调度模块,调度模块通过将要下载的数据请求交给下载模块,下载模接收到调度模块发来的下载请求开始下载请求数据,将请求数据交给爬虫模块,爬虫模块经过分析后将有用的数据交给管道模块进行筛选,将有效的数据放入到数据库中,如果需要继续爬取重复上面的操作Scrapy-redis模块:多了一个redis模块,用于存放URL的列表,调度模块换成了分布式调度器,Scrapy-redis比scrapy多了个redis,重复上面的到爬虫模块的时候,爬虫模块将需要下载的URL以字典的形式放入到了redis数据库中,然后可以用不同主机同时连接redis用过scrapy-redis特殊的分布式调度器进行调度,从而实现分布式爬虫 

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容

  • scrapy学习笔记(有示例版) 我的博客 scrapy学习笔记1.使用scrapy1.1创建工程1.2创建爬虫模...
    陈思煜阅读 12,653评论 4 46
  • 看思念播种生根发芽长叶开花,如藤蔓在记忆的窗乱爬。 看素指轻拨细抚柔绾谁的发,如流年中逝走的沙。 我深知你不会停下...
    叶辞木阅读 248评论 0 0
  • 几个月前,一个教分布式系统的教授开玩笑地跟我说,现在风口都是AI了,啥时候轮得上计算机系统?现在看来,这个风口真的...
    DanqIO阅读 604评论 2 3
  • 每年五月的第二个周日被定为母亲节,因为是休息天,今天刚好又是天气晴朗,俺家闺女陪着我和乐儿山巴队员一起去建德...
    五月的荷阅读 295评论 17 16