自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(99)
  • 资源 (1)
  • 收藏
  • 关注

原创 十一、异常

一、异常解决异常定义:Python 中,程序在执行的过程中产生的错误称为异常,如列表索引越界、打开不存在的文件等。二、捕获异常2.1 捕获简单异常(1) 捕获异常 try…except…try: print('-----test--1---') open('123.txt','r') print('-----test--2---')except IOError:...

2019-01-07 23:45:20 401

原创 一、运维简介,变量、表达式、创建运维脚本、Linux常见符号

一、运维简介1. 自动化运维自动化运维:通过使用工具和写shell脚本完成运维活动2. 以某个项目为例规划:我们需要多少资源来支持项目的运行管理:项目运行过程中的所有内容都管理起来流程规范:所有操作都形成制度,提高工作效率平台:大幅度提高工作效率监控:实时查看项目运行状态指标告警:状态指标异常,告知工作人员处理安全:网站运营安全措施优化:保证用户访问网站体验很好3. ...

2018-12-31 11:13:15 257

原创 十、文件操作

使用文件的目的:就是把一些数据存放起来,可以让程序下一次执行的时候直接使用,而不必重新制作一份,省时省力。1、文件的打开与关闭1.1 打开文件f = open(文件名,访问模式)在python,使用open函数,可以打开一个已经存在的文件,或者该文件不存在时创建一个新文件。读写中文时,加 encoding=“utf-8”访问模式模式含义r只读,指针在开头...

2018-12-29 21:50:28 240

原创 九、递归函数、匿名函数、日期时间函数、随机函数、闭包、装饰器

一、递归函数定义:如果一个函数在内部,不调用其他的函数,而是调用自身的话,这个函数就是递归函数。程序实例如下所示:def func(count): if count == 1: result = 1 else: result = func(count-1)*count return resultnumber = int(input...

2018-12-29 20:53:24 314

原创 八、函数

函数介绍函数:  对某块具有独立功能的代码的封装,提高代码的重用性。函数的定义和调用定义:def 函数名()调用: 函数名()(1)每次调用函数时,函数都会从头开始执行,当这个函数中的代码执行完毕后,意味着调用结束了。(2)如果函数中执行到了return也会结束函数(3)遵循代码由上往下执行 会把上面的进行覆盖函数的文档说明:help(函数名)-----能查看函数的相关...

2018-12-28 17:56:15 152

原创 五、下标、切片和字符串常见操作

一、下表及切片下标:下标 或者 索引 也可以叫做下标索引(代表的是一个字符在字符串中的位置)-下标从左到右,左面第一个以0开始。下标从右到左,右面第一个以-1开始。从左右不同方向算,每个位置有两个下标值。切片:指对操作的对象截取其中一部分的操作切片的语法:[起始:结束:步长] ,注意:"结束"位的前一位结束(不包含结束位本身)a[0:3] 等价 a[:3]a[::-1] ...

2018-12-28 17:53:42 474 2

原创 七、元组、字典、集合的常见操作和公共方法

一、元组访问元组:通过下标索引访问作用:为了保证 数据安全修改元组:python中不允许修改元组的数据,包括不能删除其中的元素。常用操作:b = count(要查找的元素)b = index(查找元素,start,end)有唯一的元素 a = (3.14,) 注意写逗号二、字典字典:如果键值重复,字典只会保留一个空字典:a = {}a = dict(...

2018-12-28 01:50:18 141

原创 六、列表简介和常见操作

一、列表1.1 列表的格式:namesList = ['xiaoWang','xiaoZhang','xiaoHua']可以保存各种类型的数据列表是有序的可变数据类型,支下标索引1.2 空列表a = [ ]a = list( )1.3 列表的循环遍历使用for或者while循环语句 namesList = ['xiaoWang','xiaoZhang','xia...

2018-12-28 00:37:13 147

原创 四、判断语句、循环语句、break和continue和pass语句

一、判断语句1.1 if-else的使用格式 if 条件: 满足条件时要做的事情1 ...(省略)... else: 不满足条件时要做的事情1 ...(省略)...1.2 if-elif-else if 条件1: 满足条件时要做的事情1 ... elif 条件2: ...

2018-12-27 20:43:44 487 3

原创 三、输入输出、运算符和数据类型转换

一、python中的交互1.1 python3printinput——无论用户输入什么类型最终都是字符串类型1.2 python2printraw_inputinput——接收是一个表达式 (能够返回一个数值的) 输入的是什么数据类型 返回的就是什么类型。二、格式化输出格式化符号符号含义%s字符串%c字符%d有符号十进制整数...

2018-12-27 17:35:48 308

原创 二、python基础语法——注释、变量、标识符和关键字

一、python程序,中文支持pthon3支持默认中文,python2默认不支持解决办法:在程序的开头写入如下代码,这就是中文注释#coding=utf-8# -*- coding:utf-8 -*-二、注释注释的作用:对某段代码进行标注说明,增强程序可读性,开发中方便调试代码=2.1 单行注释# 我是注释,可以在里写一些功能说明之类的哦print('hello world')...

2018-12-27 16:02:24 251

原创 一、python基础——计算机组成原理及python的产生

一、什么是计算机计算机:俗称电脑,是现代一种用于高速计算的电子机器,可以进行数值计算和逻辑判断,还具有存储记忆功能,且能够按照程序的运行,自动、高速处理数据。计算机是20世纪最先进的科学技术发明之一。二、计算机系统由什么组成1.1 硬件系统  主要分为主机和外设两部分,是指那些构成计算机系统的物理实体,它们主要由各种各样的电子器件和机电装置组成。从ENIAC(世界上第一台计算机)到当...

2018-12-27 15:10:19 332

原创 三十三、scrapy的crawlspider爬虫

1.crawlspider是什么  回顾之前的代码中,我们有很大一部分时间在寻找下一页的url地址或者是内容的url地址上面,这个过程能更简单一些么?思路:从response中提取所有的满足规则的url地址自动的构造自己requests请求,发送给引擎  对应的crawlspider就可以实现上述需求,能够匹配满足条件的url地址,组装成Reuqest对象后自动发送给引擎,同时...

2018-12-22 20:36:39 174

原创 三十二、scrapy中间件的使用

1. scrapy中间件的分类和作用1.1 scrapy中间件的分类根据scrapy运行流程中所在位置不同分为:下载中间件爬虫中间件1.2 scrapy中间的作用:预处理request和response对象如对非200响应的重试(重新构造Request对象yield给引擎)也可以对header以及cookie进行更换和处理使用代理ip等  但在scrapy默认的情况下 两...

2018-12-22 20:20:39 395

原创 三十一、scrapy管道的使用

1. pipeline中常用的方法:process_item(self,item,spider):(1)管道类中必须有的函数(2)实现对item数据的处理(3)必须return item (能够让权重较低的函数能够获取的参数)(4)参数spider就是yield item的爬虫类对象spider.name = 爬虫名字open_spider(self, spider):(1)在爬...

2018-12-22 14:59:27 810

原创 三十一、pycharm发布代码

我们可以通过pycharm自带的功能向目标服务器上传代码和下载代码1. 点击Tools/Deployment/Configuration2. 点击+号起个名字,并选择SFTP3. 在SFTP host中写入服务器的ip,并点击Test SFTP connection 进行测试连接;再在Root path中选择服务器中代码部署的路径注意:该服务器必须开启ssh服务在红框下边可以输...

2018-12-22 09:38:47 307

原创 三十、scrapy模拟登陆

1. 回顾之前的模拟登陆的方法1.1 requests模块是如何实现模拟登陆的?直接携带cookies请求页面找url地址,发送post请求存储cookie1.2 selenium是如何模拟登陆的?找到对应的input标签,输入文本点击登陆1.3 scrapy的模拟登陆直接携带cookies找url地址,发送post请求存储cookiescrapy携带cookies直接...

2018-12-22 08:54:08 358

原创 二十九、scrapy构造并发送请求

1. 翻页请求的思路对于要提取如下图中所有页面上的数据该怎么办?回顾requests模块是如何实现翻页请求的:(1)找到下一页的URL地址(2)调用requests.get(url)调用requests.get(url)scrapy实现翻页的思路:(1)找到下一页的url地址(2)构造url地址的请求对象,传递给引擎2. 构造Request对象,并发送请求2.1...

2018-12-20 18:53:41 893

原创 二十八、scrapy的入门使用

1. 创建scrapy项目下面以抓取传智师资库来学习scrapy的入门使用:http://www.itcast.cn/channel/teacher.shtml安装scrapy命令:sudo apt-get install scrapy 或者:pip install scrapy创建scrapy项目的命令:scrapy startproject +<项目名字>...

2018-12-20 18:32:08 176

原创 二十七、scrapy的概念和工作流程

1. scrapy的概念Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,我们只需要实现少量的代码,就能够快速的抓取。Scrapy 使用了Twisted['twɪstɪd]异步网络框架,可以加快我们的下载速度。Scrapy文档地址:http://scrapy-chs.readthedocs.io/zh_CN/1.0/intro/overview.html2. ...

2018-12-19 19:29:14 226

原创 二十六、mongodb和python交互

1. mongdb和python交互的模块pymongo 提供了mongdb和python交互的所有方法安装方式: pip install pymongo2. 使用pymongo2.1 导入pymongo并选择要操作的集合数据库和集合能够自动创建无需权限认证的方式创建连接对象以及集合操作对象from pymongo import MongoClientclient = Mo...

2018-12-19 17:08:43 173

原创 二十五、Mongodb的备份恢复与导出导入

本小节内容需要以 sudo mongod的方式启动才可以使用1、备份作用:保证数据库安全,主要用于灾难处理备份的语法:mongodump -h dbhost -d dbname -o dbdirectory-h: 服务器地址, 也可以指定端⼝号-d: 需要备份的数据库名称-o: 备份的数据存放位置, 此⽬录中存放着备份出来的数据示例:mongodump -h 192.1...

2018-12-19 15:13:16 87

原创 二十四、mongodb的索引

1、为什么mongdb需要创建索引加快查询速度进行数据的去重2、mongodb创建简单的索引方法db.集合.ensureIndex({属性:1}),1表示升序, -1表示降序db.集合.createIndex({属性:1})注释:上面两个命令效果等价具体操作:db.db_name.ensureIndex({name:1})3、建索引前后查询速度对比测试:插入10万条...

2018-12-19 10:20:57 155 1

原创 二十三、mongodb聚合操作

1、mongodb的聚合是什么聚合(aggregate)是基于数据处理的聚合管道,每个文档通过一个由多个阶段(stage)组成的管道,可以对每个阶段的管道进行分组、过滤等功能,然后经过一系列的处理,输出相应的结果。db.集合名称.aggregate({管道:{表达式}})db.xiaoshuo.aggregate([{KaTeX parse error: Expected '}', g...

2018-12-18 23:38:44 149

原创 二十二、mongodb的入门使用

1、mongodb数据库的命令查看当前的数据库:db(没有切换数据库的情况下默认使用test数据库)查看所有的数据库:show dbs /show databases切换数据库:use 数据库名删除当前的数据库:db.dropDatabase()2、mongodb集合的命令不手动创建集合: 向不存在的集合中第⼀次加⼊数据时, 集合会被创建出来手动创建结合:db.create...

2018-12-18 19:46:23 144 1

原创 二十一、mongodb权限管理

1、为什么要进行权限管理的设置  刚安装完毕的mongodb默认不使用权限认证方式启动,与MySQL不同,mongodb在安装的时候并没有设置权限,然而公网运行系统需要设置权限以保证数据安全,所以我们要学习mongodb的权限管理2、mongodb的权限管理方案  MongoDB是没有默认管理员账号,所以要先添加管理员账号,并且mongodb服务器需要在运行的时候开启验证模式用户只能在用...

2018-12-18 14:24:56 125

原创 二十、mongodb的介绍和安装

1、nosql的介绍NoSQL最常⻅的解释是“non-relational”, “Not Only SQL”也被很多⼈接受, 指的是⾮关系型的数据库2、关系型和非关系型的介绍  对于关系型数据库,存储数据的时候需要提前建表建库,随着数据的复杂度越来越高,所建的表的数量也越来越多;但是非关系型却不需要。mysql 和 mongodb 区别:mongodb无需提前建库建表在同一表中...

2018-12-17 11:13:42 127

原创 十九、js解析

1、确定js的位置对于前面人人网的案例,我们知道了url地址中有部分参数,但是参数是如何生成的呢?毫无疑问,参数肯定是js生成的,那么如何获取这些参数的规律呢?1.1 观察按钮的绑定js事件  通过点击按钮,然后点击Event Listener,部分网站可以找到绑定的事件,对应的,只需要点击即可跳转到js的位置。1.2 通过search all file 来搜索  部分网站的按钮...

2018-12-17 10:47:24 361 2

原创 十八、chrome在爬虫中的使用

1、新建隐身窗口  浏览器中直接打开网站,会自动带上之前网站时保存的cookie,但是在爬虫中首次获取页面是没有携带cookie的,这种情况如何解决呢?解决方法:使用隐身窗口,首次打开网站,不会带上cookie,能够观察页面的获取情况,包括对方服务器如何设置cookie在本地。2、chrome中network的更多功能2.1 Perserve log默认情况下,页面发生跳转之后...

2018-12-15 16:18:00 333

原创 十七、打码平台的使用

1、常见的打码平台云打码:http://www.yundama.com/ (能够解决通用的验证码识别)极验验证码智能识别辅助:http://jiyandoc.c2567.com/ (能够解决复杂验证码的识别)2、云打码的使用2.1 云打码官方接口下面代码是云打码平台提供,做了个简单修改,实现了两个方法:indetify:传入图片的响应二进制数即可indetif...

2018-12-15 15:44:21 10261 2

原创 十六、常见的反爬手段和解决思路

1、明确反反爬的主要思路反反爬的主要思路就是:尽可能的去模拟浏览器,浏览器在如何操作,代码中就如何去实现。例如:浏览器先请求了地址url1,保留了cookie在本地,之后请求地址url2,带上了之前的cookie,代码中也可以这样去实现。2、通过headers字段来反爬headers中有很多字段,这些字段都有可能会被对方服务器拿过来进行判断是否为爬虫2.1 通过headers中的Us...

2018-12-15 14:48:04 575

原创 十五、selenium的使用

1、什么是selenium  Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,Selenium 可以直接运行在浏览器上,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器),可以接收指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏。2、PhantomJS的介绍  PhantomJS 是一个基于Webkit的“无界面”(headless)浏览...

2018-12-15 01:18:49 177

原创 python2.x和 python3.x 的区别

  和Python2.x 版本相比, Python 3.x 版本在语句输出、编码、运算和异常等方面做出了一些调整,具体如下1. print 函数替代了 print 语句Python 2.x 中,输出数据使用的是print,但是在 Python 3.x 中, print 语句没有了,取而代之的是 print 函数。示例代码如下:# python2>>> print(3,...

2018-12-14 20:07:20 746

原创 git 基本命令和分支管理

一、git 版本控制1、git简介git是目前世界上最先进的分布式版本控制系统。git两大特点:  1>版本控制:解决多人同时开发的代码问题和找回历史代码的问题。  2>分布式:Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。首先找一台电脑充当服务器的角色,每天24小时开机,其他每个人都从这个“服务器”仓库克隆一份到自己的电脑上,并且各自把各自的提交推...

2018-12-12 19:16:28 106

原创 项目准备(商业模式、开发流程、需求分析、项目架构)

一、商业模式介绍目的:知道该商城项目属于B2C商业模式。1.B2B–企业对企业  B2B (Business to Business)是指进行电子商务交易的供需双方都是商家(或企业、公司),她(他)们使用了互联网的技术或各种商务网络平台,完成商务交易的过程。电子商务是现代 B2B marketing 的一种具体主要的表现形式。案例:阿里巴巴、慧聪网2.C2C–个人对个人  C2...

2018-12-11 21:51:02 1161

原创 十四、高性能爬虫之单线程、多进程、多线程的使用、线程池、进程池的使用

1、爬取糗事百科段子页面的URL是:http://www.qiushibaike.com/8hr/page/1思路分析:确定url地址url地址的规律非常明显,一共只有13页url地址确定数据的位置数据都在id='content-left’的div下的div中,在这个区域,url地址对应的响应和elements相同2、糗事百科代码实现coding=utf-8imp...

2018-12-11 12:31:37 386

原创 十三、数据提取方法之beautifulsoup

1、CSS 选择器:BeautifulSoup4的介绍和安装  和lxml 一样,Beautiful Soup 也是一个HTML/XML的解析器,主要的功能也是如何解析和提取 HTML/XML 数据。  lxml 只会局部遍历,而Beautiful Soup 是基于HTML DOM的,会载入整个文档,解析整个DOM树,因此时间和内存开销都会大很多,所以性能要低于lxml。  Beautifu...

2018-12-10 15:26:34 260

原创 十二、数据提取方法之lxml

1、lxml的安装安装方式:pip install lxml2 lxml的使用2.1 lxml模块的入门使用导入lxml 的 etree 库 (导入没有提示不代表不能用) from lxml import etree利用etree.HTML,将字符串转化为Element对象,Element对象具有xpath的方法,返回结果的列表,能够接受bytes类型的数据和str类型的数...

2018-12-09 21:08:40 331

原创 十一、数据提取方法之xpath

1. 为什么要学习xpath和lxml  lxml是一款高性能的Python HTML/XML 解析器,我们可以利用XPath,来快速的定位特定元素以及获取节点信息。2. 什么是xpath  XPath (XML Path Language) 是一门在 HTML\XML 文档中查找信息的语言,可用来在 HTML\XML 文档中对元素和属性进行遍历。W3School官方文档:http://w...

2018-12-09 20:00:18 439

原创 十、数据提取方法之正则

1、 什么是正则表达式  用事先定义好的一些特定字符、及这些特定字符的组合,组成一个规则字符串,这个规则字符串用来表达对字符串的一种过滤逻辑。2、 正则表达式的常见语法知识点正则中的字符正则中的预定义字符集正则中的数量词练习: 下面的输出是什么?import restring_a = '<meta http-equiv="X-UA-Compatible" conten...

2018-12-09 19:02:04 317

空空如也

空空如也

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

TA关注的人

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