python自動化學習第2天
跟牛牛老師學習的第二天,學習了Charles 和python,首頁安裝的是python3之後安裝的是pyCharm 把圖標放上,以後就不會忘記長啥樣了,Charles一個青花瓷的茶壺哈哈...pycharm的打開了之後有種莫名熟悉感,因為特別像Java程序員使用的Eclipse,那就先寫一個作為程序員都會先寫的“hello world”吧,來打開新的python學習之路。
定義變量:
# name =‘xiaohei‘
# age = 18 # int
# score = 98.5 #float
# # 快速註釋ctrl+?
# name = input(‘請輸入您的名字:‘)
# print(‘你輸入的是‘,name)
條件判斷:if else
age = 18
if age >= 18:
print(‘你成年了‘)
else:
print(‘未成年‘)
條件判斷:iif elif
score = input("請輸入您的分數:")
score =int (score)#因為input只接收字符串,所以要給score定義個類型變量
if score >=90:
print(‘優秀‘)
elif score >=80 and score<=90:
print(‘良好‘)
elif score >=60 and score<=70:
print(‘
else:
print(‘不及格‘)
For while循環、遍歷、叠代
for while、定義計數器
break 在循環裏面遇到break立即結束循環
coutinue在循環裏面遇到continue,結束本次循環,進行下次循環
count = 0
while count< 20:
if count%2 !=0:
print(count)
count= count +1 #count+=1、count-=1
continue
for i in range(10):
for j in range(5):
print(i)
下面寫個我們再熟悉不過的乘法表了
for i in range(1,10):
for j in range(1, i+1):
print(‘%s * %s = %s ‘ %(j,i,j*i),end=‘‘)
print(end=‘\n‘)
看下輸出結果,是不是很熟悉哈哈哈
如果我們看不懂這個程序是怎麽運行的,我們打斷點運行,就是debug運行,
運行的時候我們就在看不懂的行外框點擊下,就會出現紅點,然後點擊Debug
點擊向下的箭頭就會往下繼續運行,並在控制臺上出現每一步的結果,很適用於我這個python小白
Charles抓包,能幫助我們定位問題,是後端接口出現的問題,還是前端有問題
Charles提供兩種查看封包的頁簽,一個是Structure,另一個是Sequence,Structure用來將訪問請求按訪問的域名分類,Sequence用來將請求按訪問的時間排序。任何程序都可以在Charles中的Structure窗口中看到訪問的域名。
Charles功能十分強大,這裏介紹幾個開發中常用的功能。
1、抓取移動設備發送的Http請求
先將移動設備連接到Charles客戶端。首先在電腦中輸入cmd打開命令行窗口,輸入ipconfig查看本機連接無線網絡的IP地址,這個地址作為移動設備連接Charles客戶端的代理地址,移動設備必須要和計算機在同一網絡中才能連接上。打開Charles客戶端,點擊Proxy->Proxy Settings菜單,可以設置移動設備連接到Charles的端口,這樣移動設備代理配置需要的ip地址和端口號都有了。Charles是通過將自己設置成代理服務器來完成抓包的,勾選系統代理後,本地系統(如果通過瀏覽器發送請求)發送出去的請求都能被截取下來。因此,如果想只抓取手機APP發送的請求的話,可以不勾選WindowsProxy選項,這樣在測試時就不會被本機Http請求所幹擾。
另外,如果想要抓取瀏覽器發送的請求包,勾選WindowsProxy選項之後還是抓取失敗,可能是瀏覽器沒有設置成使用系統的代理服務器,只要設置成使用系統的代理服務器,或者將瀏覽器的代理服務器設置成127.0.0.1:8888也可以成功。
移動設備配置之後,第一次通過手機訪問手機中的發送請求時,Charles會彈出提示框,提示有設備嘗試連接到Charles,是否允許,如果不允許的話,手機發送請求失敗,點擊Allow允許,這樣這個設備的IP地址就會添加到允許列表中,如果錯誤點擊了Deny可以重啟Charles會再此提示,或者通過Proxy->Access Control Settings手動添加地址,如果不想每個設備連接Charles都要點擊允許的話,可以添加0.0.0.0/0允許所有設備連接到Charles。
2、過濾不必要的網絡包
在抓取手機發送的請求時,有許多請求包是對圖片等不需要關註的資源的請求,我們只想對指定目錄服務器上發送的請求進行抓取,這時候就可以通過過濾網絡包的方式實現。有兩種實現方式:
1)選擇Proxy->Recording Settings菜單,然後在include欄添加需要抓取包的指定服務器請求協議、地址、端口號,也可以在exclude欄添加不抓取包的地址。
2)在Sequence界面的Filter欄中填入需要過濾的關鍵字。
3)抓取Https請求
Charles默認情況下是抓取不到Https請求的包的,需要進行配置安裝證書。選擇Help->SSL Proxying->Install Charles Root Certificate,
點擊下一步,
然後繼續下一步直到導入成功,
選擇Help->SSL Proxying->Install Charles Root Certificate on aMobile Device or Remote Browse菜單,
手機根據提示地址、端口號配置號代理後,瀏覽器打開http://chls.pro/ssl,選擇允許,
安裝證書,然後配置Proxy->SSL Proxying Settings,添加要抓取的Https請求,
如果不使用Charles,想要刪除手機裏面的證書,可以通過手機中的設置->通用->描述文件與設備管理,刪除指定的證書即可。
Day2作業:寫一個判斷登錄的程序:
輸入: username password
最大錯誤次數是3次,輸入3次都沒有登錄成功,提示錯誤次數達到上限
需要判斷輸入是否為空,什麽也不輸入,輸入一個空格、n個空格都算空
登錄成功,提示歡迎xxx,今天的日期是 xxx
可以用多個用戶登錄,選做(多個用戶登錄,每個用戶的密碼也不一樣)
import datetime
today = datetime.datetime.today()
username = ‘duyuxin‘
password = ‘123456‘
count = 0
while count< 3:
usernameInput = input(‘輸入用戶名:‘)
passwordInput = input(‘請輸入密碼:‘)
# 判斷輸入是否為空,什麽也不輸入,輸入一個空格、n個空格都算空
if usernameInput != ‘‘ and passwordInput != ‘‘:
# 判斷輸入正確的時候
if usernameInput == username and passwordInput == password:
word = ‘歡迎%s登錄,今天的日期是%s‘ % (username, today)
print(word)
break
else:
count = count + 1
# 判斷輸入錯誤的時候
print(‘登錄錯誤!用戶名或密碼錯誤。‘)
else:
count = count + 1
#輸入為空的時候
print(‘登錄錯誤!用戶名或者密碼不能為空。‘)
else:
# 登錄最大錯誤次數是3次的時候
print(‘登錄次數達到上限了‘)
python自動化學習第2天