最近在研究数据爬取,如果通过python、uibot等方式发起POST请求,很难通过登录图形验证等限制。
今天有一个新思路,就是先在浏览器完成登录,再在浏览器控制台执行JS发起Post请求,这样可以利用浏览器的鉴权。
马上付诸行动测速一下。
浏览器控制台JS代码:
[JavaScript] 纯文本查看 复制代码 $.post("http://XX.XXXX.net:27001/api/tasklist/plugin/order-plugin/variables/66928815767126", {"archived": true, "names": ["isGigabit", "addrLevel", "twoAddrName", "maintainMode", "fiveAddrId", "fiveAddrName", "hcoverMode", "addrId", "accType", "resourceType", "addrLevelType", "addrName", "newAppointment", "PONserialNo", "SevenAddrMark"]});
返回异常:
responseJSON: {type: 'NullPointerException'}
responseText: "{\"type\":\"NullPointerException\"}"
我再看一下请求情况:
发送的请求负载异常,names字段,明明传入的是一个数组。
实际请求时却是错乱的,具体见图。
所以,如果我想再浏览器控制台来执行POST请求,应该怎么写?我不知道错在哪里,请各位大佬指教,感谢。
|