python环境的配置
python pip 软件包的测试
使用pip管理python包
终端命令行下对python的操作
python 进入python代码编辑页面
exit() 或者 ctrl + Z 退出代码编辑
ipython (一种终端页面下的代码编辑器)
python的集成开发环境(IDE)
注释
python支持单行注释和多行注释 (一般注释写在代码上方)
# + 注释
变量
对于重复使用,并且经常需要修改的数据,可以定义为变量,来提高编程效率。
定义变量的语法为:( 变量名 = 变量值 )
定义变量后可以使用变量名访问变量值
python中的各种数据类型
列表: 例如:高三七班 :张三 李四 王五
字典:查找 和我们用的字典方法类似
number 数值
int
float
boolean 布尔
string 字符串 使用单引号或者双引号括起来 不允许单引号套单引号,双引号套双引号
list 列表
name_list = [' jay zhou ',' kobe brant ' ]
tuple 元组
age_tuple = ( 18,19,20,21 )
dict 字典
应用场景:scrapy 框架使用
格式:变量的名字 = {key:value,key1:value1}
person = {‘name’:‘红浪漫’,‘age’:18}
查看数据类型
在python中,只要定义了一个变量,而且他是有效的,那么他的类型就已经确定了,不需要咱们开发者主动的去说明他的类型(系统会自动判断他的类型)。也就是说在使用的时候“变量没有类型,数据才有类型”
type 打印数据类型
标识符和关键字
1.有一些特殊含义的变量名不能被当作变量 (例如:for)
2.标识符由字母、下划线和数字组成,且数字不能开头
3.严格区分大小写
4.标识符要做到顾名思义
5.遵守命名规范 : 驼峰命名法
类型的转换
如果将float转化为int 转换后的值是转换前小数点左边的值(不是四舍五入)
运算符
1.算数运算符
字符串的加法是进行字符串的拼接
2.赋值运算符
python中特有的赋值方法
3.赋值复合运算符
4.比较运算符
5.逻辑运算符
and 与
两边都是true 才返回true
or 或
两端只要有true就返回true
not 非
取反
逻辑运算符的性能优化
and
当and前面的结果是false的情况下,后面的代码就不再执行了
or
当or前面的结果是true的情况下,后面的代码就不再执行了
输出
1.普通输出
print(‘故事的小黄花,从出生那年就飘着’)
2.格式化输出
%s 代表的是字符串 %d 代表的是数值
输入
input
数据类型高级
列表高级
列表的增删改查
1.append 在末尾添加元素
2.insert 在指定位置插入元素
3.extend (继承)合并两个列表
列表的修改
列表的查找
判断某一个元素是否在列表中
删除元素
元组
python的元组与列表类似,不同之处在于元组的元素不能修改,元组使用小括号,列表使用方括号。
定义只有一个元素的元组时,要在唯一的元素后面加一个逗号,否则这个数据类型是整型
切片
切片是指对操作对象截取其中一部分的操作。字符串、列表、元组都支持切片操作
遵循左闭右开区间的原则
字典高级
第二种语法,使用这种方法获取字典中不存在的key时不会报错
字典的修改
字典的添加
字典的删除
删除某个元素
删除整个字典
清空字典中的数据,但是key保留
字典的遍历
函数
很多重复的业务逻辑,我们可以使用函数
定义
调用
参数
返回值
局部变量
在函数内部定义的变量,我们称之为局部变量
特点:其作用域范围是函数内部,而函数的外部是不可以使用的
全局变量
定义在函数外部的变量
特点:可以在函数的外部使用,也可以在函数的内部使用
文件
文件的打开与关闭
模式:
w 可写
r 可读
文件的关闭
文件必须要关闭不然占内存
文件数据的写入
在w模式之下,如果文件存在,在写入时,计算机会先清空这个文件,再写入。
所以如果我们想追加文件的内容,需要使用a模式来打开文件(append)
读文件
序列化和反序列化
通过文件操作,我们可以将字符串写入到一个本地文件。但是如果一个对象(例如列表、字典、元组等),就无法直接写入到一个文件里,需要对这个对象进行序列化,然后才能写入到文件里。
我们设计一套协议,按照某种规则,把内存中的数据转化为字节序列,保存在文件中,这就是序列化,反之,从文件的字节序列恢复到内存之中,就是反序列化。
python中提供了json这个模块用来实现数据的序列化和反序列化。
json模块
json(java script object notation,js对象简谱)是一种轻量级的数据交换标准,json的本质是字符串
序列化的两种方式
1.dumps
我们在使用scrapy框架时,该框架会返回一个对象,我们要将对象写入到文件中,就要使用json.dimps
2.dump
dump相对于dumps更加简洁一些,可以直接将转化后的字符串写入到指定的文件中
反序列化
loads
load
和dump类似,将反序列化后的结果直接转到文件中
异常
程序在运行过程中,由于我们编码不规范,或者一些其他的原因,导致我们的程序无法继续运行,此时程序就会出现异常,如果我们不对异常进行处理,程序可能会由于异常直接中断掉。为了保证程序的健壮性,我们在程序设计中提出了异常处理这个概念
页面
html的主要结构
表
无序列表
有序列表
爬虫
什么是互联网爬虫?
如果我们把互联网比作一张大的蜘蛛网,那计算机上的数据就是蜘蛛网上的一个猎物,而爬虫程序就是一直小蜘蛛,沿着蜘蛛网去抓取自己想要的数据
爬虫的核心
1.爬取网页:爬取整个网页 包含了网页中所有的内容
2.解析数据:将网页中你得到的数据进行分析
3.难点:爬虫和反爬虫之间的博弈
爬虫的用途
数据分析、人工数据集
社交软件冷启动
舆情监控
竞争对手监控
爬虫的分类
1.通用爬虫
2.聚焦爬虫
反爬手段
urllib库
一个类型和六个方法
下载
网页下载的方法
下载其他格式的文件同理