所以这可能是一个令人费解的问题,但这里有:
我正在使用node.js创建一个简单的本地托管Web抓取工具。当我手动定义要在源文件中抓取的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!
答案 0 :(得分:1)
您遇到的问题是您将浏览器端DOM与Cheerio服务器端的文档混合在一起。 div newsStory
是客户端,所以你必须找到一些方法将其内容发送到服务器。
由于您熟悉Cheerio语法,因此您可以在客户端使用jQuery,其中text()
方法的行为相同,您可以使用$.post()
将URL发送到服务器。