首先是對模擬登陸的網站進行抓包分析,分析HTTP中的GET/POST參數,密碼加密方式等。python
下面是用python3寫的簡單的POST,沒有對cookie的處理,注意python2須要略作修改,區別是urllib,urllib2等有了變更。linux
#!/usr/bin/env python3
# coding=utf-8
# XX 網站模擬登陸
import sys #for sys.argv
import urllib
import urllib.request
import urllib.parse
url = 'http://xxx'
def login():
action = 'login'
username = 'xxx' #可將密碼等保存至文件
password = 'xxx'
ac_id = 6
type = 1
data = {'action': action,
'username': username,
'password': password,
'ac_id': ac_id,
'type':type
}
postdata=urllib.parse.urlencode(data).encode('utf-8')
try:
request=urllib.request.Request(url, postdata)
response=urllib.request.urlopen(request)
# 從結果內容中查找是否有特定字符串
if(response.read().decode('utf-8').find('login_ok')>0):
print('login_ok')
except Exception as e:
print('oops!Please check network!')
print(e)
def logout():
logoutdata = {'action': 'logout'}
postdata=urllib.parse.urlencode(logoutdata).encode('utf-8')
request=urllib.request.Request(url, postdata)
response=urllib.request.urlopen(request)
print(response.read().decode('utf-8')) #根據狀況解碼
if __name__ == '__main__':
if len(sys.argv) == 1:
login()
else: # 若是有額外參數,則退出登陸
logout()
python的語法什麼的就是簡潔,包含的功能也多,社區有許多人的無私奉獻。缺點也是有的,好比說沒有編譯型語言的強大的語法分析,執行速度。寫這段代碼時某行由於少加了一個右括號,提示的是該行的下一行有語法錯誤,並未提示缺乏右括號,很不人性啊,或許加上分號會好一點吧。正則表達式
從上面的代碼中也能夠感受到python對於網絡,正則表達式等強大的支持,元組,字典等數據類型也很好用。cookie
使用方法:linux下很容易,$ python3 net.py 再跟任意參數可註銷登陸,chmod +x net.py後就能夠$ ./net.py,或加上作個符號連接,放在桌面。win下:可在python環境中運行,也可用Py2exe等工具作成可執行文件。有趣的是win下Python爲提升運行效率,生成了.pyc相似編譯的文件。網絡