2 hello lindo Hello_Lindo 于 2017.08.28 01:31 提问

python3的request怎么post同名的多个不同数值的数据

谢谢各位大牛进来解答,小新人非常感谢!
我想用request的提交方式post数据,但是我要post的数据是有同名多个数值的,请问应该怎么写代码呢?
我用Firefox的firebug插件查到post的数据是{“time”:"XXXXXX","time":"XXXXXX"},因为网页里原本是个申请表单,申请的时间段是个多选框,因此会有多个需要使用同名提交的不同数据。
我在网上找了好多都没有找到解决办法,只好来请教各位大神了。
下面是我写的代码,表单要提交的别的数据和网址我就去掉了,因为要登录什么的。。。
再次感谢!!!!

 # -*- encoding="utf-8" -*-
#!/etc/bin/env python3
import sys,msvcrt
from http import cookiejar
from urllib import request,error,parse
import re
time = ["8点-8点30分","8点30分-9点","9点-9点30分","9点30分-10点",\
        "10点-10点30分","10点30分-11点","11点-11点30分","11点30分-12点",\
        "12点-12点30分","12点30分-13点","13点-13点30分","13点30分-14点",\
        "14点-14点30分","14点30分-15点","15点-15点30分","15点30分-16点",\
        "16点-16点30分","16点30分-17点","17点-17点30分","17点30分-18点",\
        "18点-18点30分","18点30分-19点","19点-19点30分","19点30分-20点",\
        "20点-20点30分","20点30分-21点","21点-21点30分","21点30分-22点",\
        "22点-22点30分","22点30分-23点"]
for i in range(len(time)):
    if i%3==0:
        print ('')
    print ("【" +str(i+1)+ "】" + time[i]+"      ", end = '')
n = input("请问需要输入几个时间点?(1-30) ")
n = int(n)
time_list = []
i = 0
while i<n:
    j = input("请输入第"+str(i+1)+"个时间点: ")
    j = int(j)
    j = j-1
    time_list.append(time[j])
    i = i+1
url=""
cookies= cookiejar.MozillaCookieJar()
handler = request.HTTPCookieProcessor(cookies)
headers={"User-Agent":"Mozilla/5.0"}
opener = request.build_opener(handler)
opener.open(url)
for item in cookies:
    if "csrftoken" == item.name:
        csrftoken= item.value
req=request.Request(url,data,headers)
res=opener.open(req)

2个回答

lianxiaopang
lianxiaopang   2017.08.28 08:40

你可以用抓包工具,用浏览器登陆一次,看看数据是怎么post提交的,然后代码也用一样的方式格式提交应该就可以了

lianxiaopang
lianxiaopang 回复Hello_Lindo: 实话实说我也没碰到过这样的问题,我仔细看了你的代码,没发现你把数据放到data里的相关代码啊,是不是你少写了
3 个月之前 回复
Hello_Lindo
Hello_Lindo 哎呀,我想把格式调整一下结果发现回车就是直接回复了。。。。还不能删除。谢谢您解答,我查到post的格式是这样的,然后代码里应该用什么方式去保存两个同名的数据呢?字典又不可以重复。。
3 个月之前 回复
Hello_Lindo
Hello_Lindo Content-Disposition: form-data; name="time" 8点-8点30分 -----------------------------178633047218631 Content-Disposition: form-data; name="time" 8点30分-9点 -----------------------------178633047218631
3 个月之前 回复
a415547421
a415547421   2017.08.28 11:02

你仿造那个post的格式就好了

Csdn user default icon
上传中...
上传图片
插入图片