2015-06-14 2 views
5

Я работаю над nodejs для утилизации веб-сайта, и я очень новичок в nodejs.Интерфейс начальной страницы - это всплывающее окно, в котором нужно выбрать опцию из selectbox и отправить только потом позже страницы могут быть просмотрены. Это должно быть сделано в первый раз, а затем оно будет храниться как файл cookie для последующего использования.Выберите опцию из раскрывающегося списка и отправьте запрос, используя nodejs

Я могу получить html-страницу всплывающего окна, но я не могу выбрать вариант из selectbox и отправить запрос.

Вот мой код

var express = require('express'); 

var request=require('request'); 
var cheerio=require('cheerio'); 
var j = request.jar(); 
//var cookie = request.cookie(); 
j.setCookie("city_id=1; path=/; domain=.bigbasket.com", 'http://bigbasket.com/', function(error, cookie) { 
    //console.log("error"+error.message); 
    console.log("cookie "+cookie); 
}); 

var app=express(); 


app.get('/', function(req, res){ 
    console.log("hi"); 
    var sessionVal = req.session; 
    request({uri:'http://bigbasket.com/', 
    headers:{'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36' , 
      'content-type':'application/x-www-form-urlencoded; charset=UTF-8', 
      'connection':'keep-alive'}, 
       jar:j}, 
     function(err, response, body) { 
     // console.log("err "+err.message); 
     console.log("header"+JSON.stringify(response.headers)); 
     console.log("status"+response.statusCode); 
      console.log("cookie "+response.cookie); 

      console.log(body); 
      var $=cheerio.load(body,{xmlMode: true}); 
      console.log($); 
      var $selectBox= $('select').filter('.selectboxdiv'); 

      console.log($selectBox.text()); 

      response.end; 

    }); 


}); 
app.listen('8081') 
console.log('Magic happens on port 8081'); 
exports = module.exports = app; 

Я могу получить выбора опций коробки через код ниже:

var $selectBox= $('select').filter('.selectboxdiv'); 

       console.log($selectBox.text()); 

Но я не могу выбрать эту опцию и submit.I должны выбрать город из выпадающего меню и отправьте запрос, чтобы я мог очистить данные от предстоящих веб-страниц.

ответ

0

EDIT:

Что вы видите, если вы используете 'req.body.NAME_OF_YOUR_DROPDOWN_HERE'? Может быть, вы можете увидеть выбранный вариант?

+0

Объяснение было бы полезным, я использовал req.body и его ближайшие «undefined». –

+0

req.body содержит параметры, которые были отправлены клиентом в виде запроса POST. Источник: http://expressjs.com/api.html#req.body – superkytoz

+0

Я отредактировал свой ответ. Вы должны использовать req.body.NAME_OF_YOUR_DROPDOWN_HERE, чтобы ваш раскрывающийся список должен иметь атрибут имени в html. – superkytoz

Смежные вопросы