1
slixurd 2017-12-17 23:46:11 +08:00
就是 multipart 而已,最简单的方式就是照抄.....
记得标记一下 7e11614f10de 这个字符串是 multipart 分隔符 |
2
Nioty 2017-12-18 00:27:59 +08:00 via Android
直接用 request_toolkit 这个库 好像是这个名字 你去搜搜
|
3
Kilerd 2017-12-18 00:36:24 +08:00
说了多少次。
找资料用 google python 爬虫起码用 requests,不要用 urllib 了 简直要命啊,你们 |
4
swordspoet 2017-12-18 00:41:28 +08:00 via iPhone
@Kilerd 啊?我今天还用的 urllib,踩了好多个坑,难道跟库有关系?
|
5
just1 2017-12-18 02:35:55 +08:00 via Android
同#3,完全不懂的新手还是老老实实用 requests 吧,用 urllib 真的要命
|
6
jtsai 2017-12-18 06:59:57 +08:00 via Android
上传文件,就自动转这种
|
7
goofool 2017-12-18 08:43:10 +08:00 via Android
用 postman,可以自动给你转成 python 源码
|
8
chen2016 2017-12-18 09:07:59 +08:00 via Android
用 requests
|
9
xlui 2017-12-18 09:52:03 +08:00 via Android
为什么不先自己试试再来发帖呢?
|
10
vicvinc 2017-12-18 12:03:45 +08:00
form data append 前端这么做的,python 应该也有 form data 的生成库吧
|
11
olaloong OP 感谢各位大佬的指点,问题解决了,附上我的代码:
def modTEST(): url = 'http://192.168.1.1/cgi-bin/luci/admin/network/network/TEST' data = {'token':(None,getToken()), 'cbi.submit':(None,'1'), 'tab.network.TEST':(None,'advanced'), 'cbid.network.TEST._fwzone':(None,'-'), 'cbid.network.TEST._fwzone.newzone':(None,''), 'cbi.cbe.network.TEST.type':(None,'1'), 'cbi.cbe.network.TEST.ifname_single':(None,'1'), 'cbid.network.TEST.ifname_single':(None,'eth0.3'), 'cbid.network.TEST.proto':(None,'dhcp'), 'cbid.network.TEST.hostname':(None,''), 'cbi.cbe.network.TEST.auto':(None,'1'), 'cbi.cbe.network.TEST.delegate':(None,'1'), 'cbid.network.TEST.delegate':(None,'1'), 'cbi.cbe.network.TEST.broadcast':(None,'1'), 'cbi.cbe.network.TEST.defaultroute':(None,'1'), 'cbid.network.TEST.defaultroute':(None,'1'), 'cbi.cbe.network.TEST.peerdns':(None,'1'), 'cbid.network.TEST.peerdns':(None,'1'), 'cbid.network.TEST.metric':(None,''), 'cbid.network.TEST.clientid':(None,''), 'cbid.network.TEST.vendorid':(None,''), 'cbid.network.TEST.macaddr':(None,'00:e0:4c:36:11:a1'), 'cbid.network.TEST.mtu':(None,''), 'cbi.apply':(None,'保存&应用')} print(data) res = requests.post(url, files=data, cookies={'sysauth': cookiesValue}) print(res.request.body) print(res.request.headers) res.encoding = 'utf8' print(res.text) restartFireWall() return |