Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用cheerio和node.js刮取当前的第一页?_Node.js_Cheerio - Fatal编程技术网

如何使用cheerio和node.js刮取当前的第一页?

如何使用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

所以这可能是一个复杂的问题,但下面是:

我正在使用node.js创建一个简单的、本地托管的web scraper。当我在源文件中手动定义要刮取的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!
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服务器端的文档混合在一起。div
newstory
是客户端的,因此您必须找到某种方法将其内容发送到服务器


由于您熟悉ChereIO语法,因此可以在客户端使用jQuery,其中
text()
方法的作用相同,并且可以使用
$.post()
将URL发送到服务器。

嘿,这是个好主意!我会试试看,然后告诉你我发现了什么。谢谢