Javascript 信息员
因此,在对我的脚本进行了一些修改之后,我得到了以下结果:Javascript 信息员,javascript,node.js,xmlhttprequest,web-scraping,cheerio,Javascript,Node.js,Xmlhttprequest,Web Scraping,Cheerio,因此,在对我的脚本进行了一些修改之后,我得到了以下结果: var page = require('webpage').create(); console.log("connecting..."); page.open("http://watchout4snakes.com/wo4snakes/Random/RandomSentence", function(){ console.log('connected'); var content = page.conten
var page = require('webpage').create();
console.log("connecting...");
page.open("http://watchout4snakes.com/wo4snakes/Random/RandomSentence", function(){
console.log('connected');
var content = page.content;
var phrase = page.evaluate(function() {
return document.getElementById("result").innerHTML;
});
console.log(phrase);
});
感谢go oleg提示使用phantomjs,看起来无头浏览器方法允许脚本在抓取HTML内容之前运行。然后,我使用page.evaluate()从页面中提取了这个句子
不过,Phantomjs在我的系统上似乎有一些问题。所有进程都不会在phantom.exit()上退出。根据谷歌搜索,phantom.exit()与Nvidia图形驱动程序有关。另外,脚本相当慢,因为它等待页面的所有元素加载连接可能需要10秒,这对于迭代过程来说不是很好。但是我成功地得到了这句话,所以我将在此基础上继续学习,谢谢大家提供的信息 谢谢你的建议,我之前已经考虑过使用幻影,但是cheerio看起来更直截了当。我已经让Phantom进行了一次尝试,并将页面呈现出来,显示所有内容都已正确加载。唯一的问题是每次我运行幻影时幻影都无法结束进程,不知道这是否是一个常见问题?感谢您的建议,我之前已经考虑过使用幻影,但cheerio似乎更简单。我已经让Phantom进行了一次尝试,并将页面呈现出来,显示所有内容都已正确加载。唯一的问题是Phantom每次运行时都无法结束进程,不知道这是否是一个常见问题?
var request = require("./node_modules/request/");
cheerio = require('./node_modules/cheerio/');
request('http://watchout4snakes.com/wo4snakes/Random/RandomSentence', function(err, resp, body){
if(!err && resp.statusCode == 200){
console.log("connected...\n");
var $ = cheerio.load(body);
console.log($('#result').html());
}
else console.log("Failed To Connect...");
});
<table class="centeredResult">
<tr>
<td>
<span id="result"></span>
</td>
</tr>
</table>
<script>
(function ($) {
$(document).ready(function () {
var options = {
target: '#result',
beforeSubmit: function () {
$('#result').empty();
$.fnWait();
},
success: function () {
$.unblockUI();
}
};
$('#frmSentence').ajaxForm(options)
.find('input[type=submit]')
.click();
});
})(jQuery);
var page = require('webpage').create();
console.log("connecting...");
page.open("http://watchout4snakes.com/wo4snakes/Random/RandomSentence", function(){
console.log('connected');
var content = page.content;
var phrase = page.evaluate(function() {
return document.getElementById("result").innerHTML;
});
console.log(phrase);
});