參考的文章:http://www.reibang.com/p/3c790e98ea8d python的四種請求方式蚕捉,在該文中使用到了xml妹懒,form,json
本文記錄 fiddler設(shè)置妈候,抓取網(wǎng)頁,抓取手機(jī)端代碼颠通,python 模擬對于請求
1.fiddler 抓取網(wǎng)頁設(shè)置 (在filter 里面設(shè)置抓取網(wǎng)站的ip)具體操作可以百度险污,注意點(diǎn)是fiddler不能直接抓取火狐,具體原因百度憎瘸。
2.抓取手機(jī)端
需要保證 手機(jī)和電腦處于同一個網(wǎng)段(筆記本 加路由器 手機(jī)筆記本連WiFi)手機(jī)的wifi設(shè)置里面手動代理入篮,添加電腦在該網(wǎng)段下的IP,和fiddler設(shè)置的端口。
這個時候因?yàn)樽C書的原因https的包是顯示不正常的幌甘,http://IP:端口/FiddlerRooot.cer(fiddler打開的狀態(tài)下) 下載該證書并安裝到手機(jī)上面潮售。
3.開始干活:
第一種類型:pyhton post xml
xml='''<batch>
<request type="json"><![CDATA[{"action":"load-data","dataProvider":"inventoryDlgDynamicQuery#doLoadData","supportsEntity":true,"parameter":{"__viewConfigName":"com.ccssoft.inventory.web.qrcode.view.DeviceRoomMgr","metaClassName":"ROOM","isCollection":"true","areaPermission":"true","ROOM_LOCATE_REG_REGION@NAME":"安福縣"},"resultDataType":"v:com.ccssoft.inventory.web.qrcode.view.DeviceRoomMgr$[v:com.ccssoft.inventory.web.qrcode.view.DeviceRoomMgr$dataTypeEntity]","pageSize":100,"pageNo":1,"context":{},"loadedDataTypes":["dataTypeEntity","dataTypeCondition"]}]]></request>
</batch>'''
header={
'Content-Type' : 'text/xml'
}
'''
'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'Accept-Encoding':'gzip, deflate',
'Accept-Language':'zh-CN,zh;q=0.8',
'Cache-Control':'max-age=0',
'Cookie':'STUID=79',
'Connection':'keep-alive',
'Origin':'http://q',
'Referer':'http://q',
'Upgrade-Insecure-Requests':'1',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',
'''
r2=requests.post("xxxxxxxxxxx",data=xml,headers=header)
print(r2)
重點(diǎn)是
header={
'Content-Type' : 'text/xml'
}
第二種類型:pyhton post json
# jsons='''{"action":"resolve-data","dataResolver":"codeLabelMgr#modifyPrintFlag","dataItems":[{"alias":"datasetEntity","data":{"$isWrapper":true,"$dataType":"v:com.ccssoft.inventory.web.qrcode.view.DeviceRoomMgr$[v:com.ccssoft.inventory.web.qrcode.view.DeviceRoomMgr$dataTypeEntity]","data":['''+json.dumps(dict_json["data"][5]) +''']},"refreshMode":"value","autoResetEntityState":true}],"parameter":{"typeflag":"3","reason":"123456","updateid":"'''+dict_json["data"][5]["ID"]+''',","printflag":"100382"},"context":{}}'''
#
# r2=requests.post("xxxxxxx",cookies = cookies ,data=jsons,headers=header)
# print(r2)
重點(diǎn)是
header={
'Content-Type' : 'text/javascript',
}
第三種類型 : python form
data={
'METHOD' : '19',
'token' : 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJUSU1FIjoxNTQzMjgwMDc3LCJTSEFSRElOR19JRCI6Ijc5NiIsIlVTRVJOQU1FIjoiY2FyMTM2MDA4In0.-hJTE-Bn2ZWX_fEqFAAm6TM2f_8KwsRb1WgA1Zn6KUU',
'ACTION' : '704',
'CODE' : 'JX_JA_GJ_100794202',
'SHARDING_ID' : '796',
'DATA' : '{"USER_LATITUDE":"27.289719","USERNAME":"xxxx","USER_ID":"361100000000000001224000","USER_LONGITUDE":"114.188924","ALTITUDE":"0.0","DIGITAL_CODE":"JX_JA_GJ_100794202","NAME":"xxx","PARENT_SEPC_ID":"1020000000","SHARDING_ID":"796"}'
}
r2=requests.post("xxxxxxx",data = data ,headers=header)
print(r2)
重點(diǎn):Content-Type的格式有四種:分別是application/x-www-form-urlencoded(這也是默認(rèn)格式)锅风、application/json饲做、text/xml以及multipart/form-data格式。
最后少的是模擬上傳遏弱,和模擬post下載盆均,等具體用到再補(bǔ)充。