2013-09-24 3 views
0

Так что это может быть запутанный вопрос, но здесь идет:Как очистить страницу в настоящее время, используя cheerio и node.js?

Я создаю простой локально размещенный веб-скребок с node.js. Он отлично работает, когда я вручную определяю URL-адрес, который нужно очистить в исходном файле, и теперь я пытаюсь запросить у пользователя URL-адрес по своему выбору. Затем я добавляю URL-адрес, который они ввели в пустой div, и в идеале мог бы использовать cheerio, чтобы захватить содержимое этого div.

К сожалению, я не знаю, как разбирать данные, которые создаются на той же странице, на которой работает скрипт. Любое понимание было бы очень, высоко ценится!

var cheerio = require("cheerio"); 

    response.write('<div id="newsStory"></div>'); 
    response.write("<script type='text/javascript'>var userPrompt = prompt('input a url');"); 
    response.write("if(userPrompt) {document.getElementById('newsStory').innerHTML = userPrompt;}"); 
    response.write("</script>"); 

    var $ = cheerio.load(); 

    var url = $('div#newsStory').text(); //does not work! 

    var url = "http://www.cnn.com/2013/09/23/us/south-carolina-powerball-winner/"; //manually inputting a url works! 

ответ

1

Проблемы вы испытываете это вы смешение браузера на сторону DOM с документом Cheerio имеет на сторону сервера. Div newsStory на стороне клиента, поэтому вам нужно найти способ отправить его содержимое на сервер.

Поскольку вы знакомы с синтаксисом Cheerio, вы можете использовать jQuery на стороне клиента, где метод text() действует одинаково, и вы можете использовать $.post() для отправки URL-адреса на сервер.

+0

эй, это отличная идея! Я попробую это и дам вам знать, что я нахожу. благодаря! – user1939156

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