一、抓包工具

常用的抓包工具有两种: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'

     'for''from''global''if''import''in''is''lambda''not''or''pass''print''raise''return'
     'try''while''with''yield'

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('你很丑')
if判断时候,都是判断的真或者假,也就是True和False

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
posted on 2017-05-19 00:58  cathy_y  阅读(14693)  评论(0编辑  收藏  举报