一、抓包工具
常用的抓包工具有两种:Charles和Fiddler
两者的区别:Charles不分平台,可用于Mac、windows和Linux,而fiddler只能用于windows
共同点:可以抓到PC端的请求,手机设置代理后也可以抓到手机上的请求,也可以修改请求数据和返回数据
*Charles
web端:打开Charles,访问网页既能抓到请求
app:设置代理,手机Wi-Fi,写上本机IP地址和端口号,打开app就能抓到请求(Charles默认端口号为8888)
Charles过滤请求:
抓包时可把抓到对我们没用的请求过滤掉
Charles修改请求和返回值:
1.找到要修改的请求
2.设置断电
3.修改请求/返回
4.重新发送请求
fiddler同Charles一样设置代理,端口号默认8888
fiddler修改请求和返回值
1.找到要修改的请求
2.设置断点
3.修改请求,在发出请求之前设置断点,修改请求/发送
4.修改返回,在获取到返回之前设置断点,修改返回值,再发送
设置返回断点
二、python
1.python是一种面向对象的解释型计算机语言
2.python配置环境变量
把python的安装目录及python安装目录下的scripts目录加入到环境变量中,例:;C:\Python35;C:\Python35\Scripts
3.交互模式下运行python代码
Windows下,安装好python并且配置好环境变量之后,直接在命令行里面输入python就可以进入python交互式命令行,Linux下同windows
以.py结尾命名python文件,在交互模式下运行python文件格式为:python hello.py
windows下运行python文件时需要在指定目录下运行,与Linux不同的是,Linux可以直接运行python文件,只需加上执行权限,在python文件最前面指定python解释器即可
4.第一个小程序:hello world!
5.变量
通俗的说,变量就是用来存东西供后面的来用,用=就能解决,也不需要指定数据类型,直接定义就好,值得一提的是python变量里面存的是内存地址,也就是这个值存在内存里面的哪个地方,如果再把这个变量赋值给另一个变量的话,新的变量通过之前那个变量知道那个变量值的内存地址存起来,而不是指向的之前那个变量
name = 'cathy'
new_name = name # new_name存的也是cathy的内存地址
变量名只能是 字母、数字或下划线的任意组合
变量名的第一个字符不能是数字
不能声明为变量名的关键字
'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally',
6.python中的单引号、双引号和三引号
python中定义变量的时候字符串都用用引号括起来,单引号和双引号没有区别,如果说这个字符串里面有单引号的话,那你外面就用双引号,里面有双引号的话,外面就用单引号,如果既有单又有双,那么用三引号,三引号也可以多行注释代码
msg = "I'm Sriba." #有单引号,所以外面用双引号
info = 'Python comments ues "#".' ##有双引号,所以外面用单引号
new_msg = '''I'm Sriba, i love "Python".'''#有双引号和双引号,所以外面用三引号
'''
上面的代码是说明单引号、双引号和三引号的
这一段是注释,说明三引号也有多行注释的功能
'''
7.输入、输出
输入函数input,接收的是字符串,输出函数print
name = input('请输入你的姓名:')#把接收到的值赋给name变量
print('name')#输出接收到的输入
input()函数接收到的值,全部都是字符串类型的,如果要和int类型做比较的话,必须用int()把字符串转成int类型的,才能做比较,如:
age = int(input('输入你的年龄:'))
查看变量的类型
print('看age是什么类型:',type(age))
getpass标准库可以隐藏你输入的值,比如密码不想被别人看到,使用getpass.getpass方法就可以在输入的时候,不回显
import getpass #导入getpass模块
password = getpass.getpass('Please enter your password:') #接收输入的密码
print(password)
8.条件判断if else 条件分支的话使用if、elif、else,格式如下:
if tar_name == s_name:
print('你很帅')
elif tar_name == name2:
print('180大个子')
elif tar_name == name3:
print('帅')
else:
print('你很丑')
9.布尔类型有两种:真和假
t = True
f = False
10.循环、遍历、迭代
python里面有两种循环
while
for
count = 8 # 计数器
while count<10:
print('我困了!')
count=count+1#循环体
else:
print('睡醒了。')
#break的用法
退出循环,break只能在循环里面用,如果在循环里面遇到break,那么立即退出循环
count = 0 # 计数器
while count < 10:
print('上班不积极!')
count = count + 1
if count==5:
break
#continue的用法,continue的作用是退出本次循环
count = 0 #计数器
while count<10:
count=count+1
if count == 5:
continue
print('下课%d'%count)
#for循环里面的break
for i in range(10):
print('上课,%s'%i)
if i == 6:
break
#for循环里面的 continue用法
for i in range(10):
if i==7:
continue
print('中午吃什么,%s'%i)
#for循环对应的else,只有当for正常循环结束才会执行
for count in range(1,11):#顾头不顾尾
print(count)
else:
print('over。。。')
11.记住一句话,非0即真,非空即真
12.小游戏
import random#随机数模块
sub_str=random.randint(1,101) #生成1-100的一个随机数
while 1:#while的意思就是,让它一直为真,也就是死循环,下面通过break来停止循环
num=int(input('plase enter a num , 1-100:'))
if num>100 or num<1: #判断输入的数字是否在1-100之间
print('num error,plase enter 1-100.')
continue
else:
if num==sub_str: #如果猜对了,结束循环
print('You win. game over,the num is %d'%sub_str)#不懂这个的请看下面的第十四,字符串格式化输出
break
elif num < sub_str:#如果猜小了,就跳出本次循环,提示猜小了
print('The num is small,plase enter other num.')
continue
else:#就三种情况,大、小等于,前面两种是等于和小雨,那么else就是大于了,如果猜大了,就跳出本次循环,提示猜大了
print('The num is too big,plase enter other num.')
continue