PDA

View Full Version : مشکل عدم ارسال اطلاعات در nodejs



shadone
چهارشنبه 27 بهمن 1395, 14:44 عصر
سلام
چند وقته دارم رو این کد کار میکنم اما نمیدونم مشکلش چیه...
این کد در nodejs قراره مقدار کپچا رو که قبلا حدس زده شده داخل فیلد مورد نظر قرار بده و ارسال کنه به سرور سایت و صفحه ای که سرور به عنوان ریسپاند برمیگردنه رو در یه فایلی ذخیره کنه اما صفحه ای که ذخیره میکنه درواقع همون صفحه کپچا هست با مقدار کپچا که حدس زده داخل فیلد مربوط..... یعنی عملیات پست اطلاعات کپچا و هدر ها رو انجام نمیده خواهشا کمک کنید
http://ashiyane.org/forums/images/smilies/59.gif
.....

(guess مقدار کپچای حدس زده شده س )
این قسمت از کد




var c = new Crawler({
maxConnections : 10,
// This will be called for each crawled page
callback : function (error, result, $) {
// $ is Cheerio by default
//a lean implementation of core jQuery designed specifically for the server
if(error){
console.log(error);
}else{
console.log(result.uri);
var cookie = result.headers['set-cookie'].toString().split(';')[0];

var code = result.uri.split('=')[1];

var captcha_url = $("#imgCaptcha").attr('src').replace('../', 'http://sitename.com/');
var v1 = $("#__EVENTVALIDATION").val();
var v2 = $("#__VIEWSTATEGENERATOR").val();
var v3 = $("#__VIEWSTATE").val();

console.log('captcha -> ' + captcha_url);
var random_number = uuid();
var captcha_path = '/output/captcha/' + random_number + '.jpg';
var captcha_path_node = '.'+ captcha_path;
var file = fs.createWriteStream(captcha_path_node);
var request = http.get(captcha_url, function(response) {

response.pipe(file).on('close', function(){

var exec_command = __dirname + '\\captcha_solver\\RecogCaptcha.exe' ;

exec( exec_command, [ __dirname + captcha_path.replaceAll('/','\\')], function(err, data) {
if(err)
console.log(err)
if(data != null && data != ''){
var guess = data.toString().trim().replaceAll(' ','');
var post_data = {
"ctl00$cphMain$captcha$txtCaptcha": guess,
"__EVENTVALIDATION":v1,
"__VIEWSTATEGENERATOR": v2,
"__VIEWSTATE" : v3
};
var post_options = {
hostname: 'www.saitname.com',
port: 80,
path: '/News/ShowNews.aspx?Code=' + code,
method: 'POST',
headers: {
"Cache-Control": 'max-age=0',
'Upgrade-Insecure-Requests': 1,
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'DNT': 1,
'Accept-Encoding': 'gzip, deflate, sdch',
'Accept-Language': 'en-US,en;q=0.8,fa;q=0.6,ar;q=0.4,fr;q=0.2',
'Cookie': cookie
}
};

console.log(post_data);
fs.renameSync(captcha_path_node,captcha_path_node. replace(random_number,guess));
http.post(result.uri,post_data,
function(res){
res.setEncoding('utf8');
var body = '';
res.on('data', function(chunk) {
body += chunk;
});
res.on('end', function() {
// console.log(body);
});
var html_path = './output/html/' + code + '.html';
var html = fs.createWriteStream(html_path);

res.pipe(html).on('close', function(){


});

});
}

});

});


});


}
}
});

shadone
پنج شنبه 28 بهمن 1395, 09:17 صبح
یعنی واقعا کسی نمیدونه مشکل چیه؟!!!!!:متفکر::گریه: