一、抓包工具
常用的抓包工具有兩種: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
