我正在制作一个脚本,以便从表单中对POST请求的响应中进行网络抓取。问题是该页面要求一个带有JSESSIONID的cookie,所以在此之前,该脚本向同一页面发出GET请求以挽救发送的cookie以在POST请求中使用它,但页面响应是&# 39;错误400:请求无效路径/ SalidaAplicacion'
var request = require('request');
var async = require('async');
request = request.defaults({
jar: true
});
var url = "http://civil.poderjudicial.cl/CIVILPORWEB/AtPublicoDAction.do";
var headers = {
'Host': 'civil.poderjudicial.cl',
'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:44.0) Gecko/20100101 Firefox/44.0',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'en-US,en;q=0.5',
'Accept-Encoding': 'gzip, deflate',
'Connection': 'keep-alive'
}
var options = {
url: url,
followredirect: true,
forever: true,
headers: headers
}
var form = {
'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': '326',
'TIP_Consulta': '3',
'TIP_Lengueta': 'tdDos',
'SeleccionL': '0',
'RUC_Tribunal': '3',
'FEC_Desde': '01/1/2016',
'FEC_Hasta': '01/2/2016',
'SEL_Litigantes': '0',
'COD_Tribunal': '375',
'irAccionAtPublico': 'Consulta',
'cpMonth': '1',
'cpYear': '2016'
}
var cookie;
async.series([
function getCookie(callback) {
request.get(options, function(error, response, body) {
cookie = response.headers['set-cookie'][0];
callback(null, 1);
})
},
function getPage(callback) {
headers['cookie'] = cookie;
request.post({
url: url,
form: form,
headers: headers
}, function(err,httpResponse,body){
if (err)
return console.error('ERROR:', err);
console.log(body);
callback(null, 1);
});
}]
);
此外,当使用来自Web浏览器的cookie时,页面会以预期的方式响应,因此显然页面不接受所获取的cookie。 提前谢谢!