[問題] jQuery的.ajax
最近寫的小爬蟲遇到一個問題
就是網頁的表單資料是利用javascript截取之後
再利用.ajax送出去
$.ajax({
url: "my url",
data: {data:value},
type: "POST",
dataType: 'text',
success: function (msg) {
...
}
});
value用console看起來長這個樣子
{base: Array(5), data: Array(7)}
base: (5) ["2017-10-27", "name", "", "3", 0]
data: (7) ["正常", "正常", "正常", "正常", "正常", "正常", "正常"]
不過用chrome的開發工具看了一下POST出去的資料
data[base][]:2017-10-27
data[base][]:name
data[base][]:
data[base][]:3
data[base][]:0
data[data][]:正常
data[data][]:正常
data[data][]:正常
data[data][]:正常
data[data][]:正常
data[data][]:正常
data[data][]:正常
data[data][]:正常
data[data][]:正常
data[data][]:正常
感覺就不太對
在python底下直接送這個也是錯的
想請問一下 jQuery裡面的ajax在POST表單的時候 他轉換成requests的payload
會長成什麼樣子?
感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.120.251.134
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1509072345.A.A68.html
→
10/27 10:53,
6年前
, 1F
10/27 10:53, 1F
→
10/27 10:53,
6年前
, 2F
10/27 10:53, 2F
但是我直接
params = {"data[base]":"2017-10-27",
"data[base]":"",
...}
是失敗的
推
10/27 11:07,
6年前
, 3F
10/27 11:07, 3F
→
10/27 11:10,
6年前
, 4F
10/27 11:10, 4F
推
10/27 11:12,
6年前
, 5F
10/27 11:12, 5F
→
10/27 11:12,
6年前
, 6F
10/27 11:12, 6F
因為爬的網頁原本是用ajax送資料的
他送的資料我用console print出來是長這個樣子
但是我不知道怎用成dict格式
→
10/27 11:13,
6年前
, 7F
10/27 11:13, 7F
所以我想知道說ajax他value裡面如果遇到array他是如何處理成post接收的資料QQ
→
10/27 11:15,
6年前
, 8F
10/27 11:15, 8F
嘗試過
value1 = {"base":["2017-10-27", "name", "", "3", 0],
"data":["正常", "正常", "正常", "正常", "正常", "正常", "正常", "正常
", "正常", "正常"]}
value1 = urllib.urlencode(value1, True)
失敗QQ
推
10/27 11:26,
6年前
, 9F
10/27 11:26, 9F
value1 = {"data[base]":["2017-10-27", "name", "", "3", "0"],
"data[data]":["正常", "正常", "正常", "正常", "正常", "正常", "正常",
"正常", "正常", "正常"]}
value1 = urllib.urlencode(value1, True)
失敗
推
10/27 11:35,
6年前
, 10F
10/27 11:35, 10F
→
10/27 11:36,
6年前
, 11F
10/27 11:36, 11F
→
10/27 11:36,
6年前
, 12F
10/27 11:36, 12F
推
10/27 11:39,
6年前
, 13F
10/27 11:39, 13F
→
10/27 11:39,
6年前
, 14F
10/27 11:39, 14F
→
10/27 11:39,
6年前
, 15F
10/27 11:39, 15F
→
10/27 11:42,
6年前
, 16F
10/27 11:42, 16F
推
10/27 11:50,
6年前
, 17F
10/27 11:50, 17F
→
10/27 12:06,
6年前
, 18F
10/27 12:06, 18F
→
10/27 12:09,
6年前
, 19F
10/27 12:09, 19F
→
10/27 12:10,
6年前
, 20F
10/27 12:10, 20F
主要是 我要模擬前端對server送出requests的資料就好
推
10/27 22:44,
6年前
, 21F
10/27 22:44, 21F
→
10/27 22:45,
6年前
, 22F
10/27 22:45, 22F
→
10/27 22:45,
6年前
, 23F
10/27 22:45, 23F
推
10/27 22:47,
6年前
, 24F
10/27 22:47, 24F
→
10/27 22:47,
6年前
, 25F
10/27 22:47, 25F
→
10/27 22:51,
6年前
, 26F
10/27 22:51, 26F
→
10/27 22:51,
6年前
, 27F
10/27 22:51, 27F
推
10/27 22:53,
6年前
, 28F
10/27 22:53, 28F
好像不是這個樣子 因為這樣送出去的url怪怪的
WTF 最後解法是
原:
value1 = {"data[base][]":["2017-10-28", "name", "", "3", 0],
"data[data][]":["正常", "正常", "正常", "正常", "正常", "正常", "正常
", "正常", "正常", "正常"]}
value2 = urllib.urlencode(value1, True)
f = res.post(get_data_url, headers = headers, param = value2)
改成:
value1 = 不變
valeu2 = 不變
f = res.post(get_data_url, headers = headers, data = value2)
就可以了= =
※ 編輯: neil987 (219.68.18.225), 10/28/2017 14:33:59
→
10/28 14:38,
6年前
, 29F
10/28 14:38, 29F
推
10/30 16:28,
6年前
, 30F
10/30 16:28, 30F
推
10/30 16:31,
6年前
, 31F
10/30 16:31, 31F
→
10/30 16:31,
6年前
, 32F
10/30 16:31, 32F