本人亲测
用代码代替浏览器访问
import urllib.request import json from urllib import parse if __name__ == '__main__': # 模拟浏览器请求 header = { 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36', "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", } url = "http://192.168.1.73:8080/web/ajax/login.jsp?username=%s&password=%s"%('035','123456') #发送请求 c = urllib.request.Request(url, headers=header) #返回值response对象(包含read()、readinfo()、getheader(name)、getheaders()、fileno()等方法) a=urllib.request.urlopen(c) print(a)#返回值--------><http.client.HTTPResponse object at 0x7f4b783ed2e8> # 获取返回值read()、 user = a.read() print(user)#返回值-------->b'{"msg":"","code":0,"count":1}' load_data = json.loads(user) print(load_data)#返回值-------->{'msg': '', 'code': 0, 'count': 1} # 获取cookie、值 cookie = a.headers.get('Set-Cookie')
登录成功
分析浏览器
用代码代替浏览器访问
# 查找值 shuju = [201808060001, 1902110063] # 要操作多个功能,所以cookie很重要,他是身份的验证,从新定义header hea = { 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36', "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", 'cookie': cookie } # 遍历集合值,模拟浏览器查找 for name in shuju: url = 'http://192.168.1.73:8080/web/ajax/data2018_seach.jsp?order_num=%s&car_num='%(str(name)) uhttp = urllib.request.Request(url,headers=hea) response = urllib.request.urlopen(uhttp) page= response.read() load_data = json.loads(page) print(load_data)
返回值:
[{…省略不写…}]
分析浏览器
用前段Debugger模式分析出修改后的值
用代码代替浏览器访问
for name in shuju: url = 'http://192.168.1.73:8080/web/ajax/data2018_seach.jsp?order_num=%s&car_num='%(str(name)) uhttp = urllib.request.Request(url,headers=hea) response = urllib.request.urlopen(uhttp) page= response.read() load_data = json.loads(page) if len(load_data['data']) !=1: print("\033[1;45m 错误 %s---查到:%s条数据 \033[0m"%(name,len(load_data['data']))) break else: teepin = load_data['data'][0] list1=['voucher','num','member_name','f_date','d_date','car_num','dt','dt2','meb_name','meb_name_c','c_type','c1','c2','c3','c4','c_form_data'] list2=['9-204-4',teepin['货单号'],teepin['客户名称'],teepin['发货日期'],teepin['发货日期'],teepin['车牌号码'],teepin['发货吨位'],teepin['到货吨位'],'', '***有限公司',teepin['经营模式'],'提货单','装车单','到货单','无榜单','提货单,装车单,到货单'] url = "http://192.168.1.73:8080/web/ajax/data2018_edit.jsp?id=%s" % (teepin['索引']) datas = urllib.parse.urlencode(dict(zip(list1, list2))).encode("utf-8") #列表转字典 a = urllib.request.Request(url, data=datas, headers=header) a.add_header('cookie', cookie) respon = urllib.request.urlopen(a) result = respon.read() loaddata = json.loads(result) if(loaddata['code']!=0): print("\033[1;45m %s 修改失败 \033[0m" % (name)) break print("%s:成功"%(name))
import urllib.request import json from urllib import parse if __name__ == '__main__': # 模拟浏览器请求 header = { 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36', "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", } # 登陆获取cookie ['035','123456'是账户密码] url = "http://192.168.1.73:8080/web/ajax/login.jsp?username=%s&password=%s"%('035','123456') #发送请求 c = urllib.request.Request(url, headers=header) #返回值response对象(包含read()、readinfo()、getheader(name)、getheaders()、fileno()等方法) a=urllib.request.urlopen(c) print(a)#返回值--------><http.client.HTTPResponse object at 0x7f4b783ed2e8> # 获取返回值read()、 user = a.read() print(user)#返回值-------->b'{"msg":"","code":0,"count":1}' load_data = json.loads(user) print(load_data)#返回值-------->{'msg': '', 'code': 0, 'count': 1} shuju = [201808060001, 1902110063] # 获取cookie、值 cookie = a.headers.get('Set-Cookie') # 要操作多个功能,所以cookie很重要,他是身份的验证,从新定义header hea = { 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36', "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", 'cookie': cookie } # 遍历集合值,模拟浏览器查找 for name in shuju: url = 'http://192.168.1.73:8080/web/ajax/data2018_seach.jsp?order_num=%s&car_num='%(str(name)) uhttp = urllib.request.Request(url,headers=hea) response = urllib.request.urlopen(uhttp) page= response.read() load_data = json.loads(page) if len(load_data['data']) !=1: print("\033[1;45m 错误 %s---查到:%s条数据 \033[0m"%(name,len(load_data['data']))) break else: teepin = load_data['data'][0] list1=['voucher','num','member_name','f_date','d_date','car_num','dt','dt2','meb_name','meb_name_c','c_type','c1','c2','c3','c4','c_form_data'] list2=['9-204-4',teepin['货单号'],teepin['客户名称'],teepin['发货日期'],teepin['发货日期'],teepin['车牌号码'],teepin['发货吨位'],teepin['到货吨位'],'', '*****有限公司',teepin['经营模式'],'提货单','装车单','到货单','无榜单','提货单,装车单,到货单'] url = "http://192.168.1.73:8080/web/ajax/data2018_edit.jsp?id=%s" % (teepin['索引']) datas = urllib.parse.urlencode(dict(zip(list1, list2))).encode("utf-8") #列表转字典 a = urllib.request.Request(url, data=datas, headers=header) a.add_header('cookie', cookie) respon = urllib.request.urlopen(a) result = respon.read() loaddata = json.loads(result) if(loaddata['code']!=0): print("\033[1;45m %s 修改失败 \033[0m" % (name)) break print("%s:成功"%(name))
注:
1:上述访问的网站是自己的,不存在于其他用途
2:仅作技术借阅