如何使用cheerio和node.js刮取当前的第一页?
所以这可能是一个复杂的问题,但下面是: 我正在使用node.js创建一个简单的、本地托管的web scraper。当我在源文件中手动定义要刮取的URL时,它工作得非常好,现在我正试图提示用户选择一个URL。然后,我将他们输入的URL附加到一个空div中,理想情况下,可以使用cheerio获取该div的内容 不幸的是,我不知道如何解析在脚本运行的同一页面上创建的数据。如果您有任何见解,我们将不胜感激如何使用cheerio和node.js刮取当前的第一页?,node.js,cheerio,Node.js,Cheerio,所以这可能是一个复杂的问题,但下面是: 我正在使用node.js创建一个简单的、本地托管的web scraper。当我在源文件中手动定义要刮取的URL时,它工作得非常好,现在我正试图提示用户选择一个URL。然后,我将他们输入的URL附加到一个空div中,理想情况下,可以使用cheerio获取该div的内容 不幸的是,我不知道如何解析在脚本运行的同一页面上创建的数据。如果您有任何见解,我们将不胜感激 var cheerio = require("cheerio"); response.w
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!
var cheerio=require(“cheerio”);
回答。写(“”);
write(“var userPrompt=prompt('input a url');”;
write(“if(userPrompt){document.getElementById('newstory').innerHTML=userPrompt;}”);
回答。写(“”);
var$=cheerio.load();
var url=$('div#newstory').text()//不行!
变量url=”http://www.cnn.com/2013/09/23/us/south-carolina-powerball-winner/"; //手动输入url有效!
您遇到的问题是将浏览器端DOM与Cheerio服务器端的文档混合在一起。divnewstory
是客户端的,因此您必须找到某种方法将其内容发送到服务器
由于您熟悉ChereIO语法,因此可以在客户端使用jQuery,其中
text()
方法的作用相同,并且可以使用$.post()
将URL发送到服务器。嘿,这是个好主意!我会试试看,然后告诉你我发现了什么。谢谢