搜索JavaScript
我正在用JavaScript做一个搜索脚本 它应该获取多个URL的HTML内容并搜索其中的字符串,如果匹配,则将页面内容保存在HTML文件中 我对此有些问题。为什么? 它会获取第一个URL的内容,但在下一次搜索中不会获取指定URL的内容 代码如下:搜索JavaScript,javascript,jquery,html,Javascript,Jquery,Html,我正在用JavaScript做一个搜索脚本 它应该获取多个URL的HTML内容并搜索其中的字符串,如果匹配,则将页面内容保存在HTML文件中 我对此有些问题。为什么? 它会获取第一个URL的内容,但在下一次搜索中不会获取指定URL的内容 代码如下: var i = 24522460; function startSearch(){ var page = require('webpage').create(); var fs = require('fs'); page.
var i = 24522460;
function startSearch(){
var page = require('webpage').create();
var fs = require('fs');
page.onError = function(msg, trace) {
console.log(msg)
return;
};
page.open('http://www.opsu.gob.ve/portal/principal.html?ir=cpnev_csni&tp=1&ci='+i, function () {
console.log(i);
if(page.content.search('RICARDO')>=0)
//console.log(page.content);
fs.write('1.html', page.content, 'w');
shiftPage();
});
}
function shiftPage(){
i++;
startSearch();
}
startSearch();
如果你想证明它,在
i=24522469
中,它应该保存HTML文件。问题解决了
问题是脚本请求页面的速度非常快,而且加载不完整,因为脚本找不到指定的文本
我只是在加载后添加一个“延迟”,然后搜索文本,它就工作了
谢谢您的帮助。看起来您每次都在写同一个文件(
1.html
)。您确定它没有读取多个URL,然后覆盖内容吗?这是在浏览器node.js中运行还是在where中运行?是的,因为当它从24522460开始时(它在内容中找不到'RICARDO',并且不保存文件,当它从24522469开始时(应该在内容中找到'RICARDO',但是它没有)。尝试类似于fs.write(i+'.html',page.content,'w'的东西)
所以每次搜索时,它都会生成一个具有相同编号的新文件(我相信我代表一个ID)Id.谢谢老兄,我这么做了,我知道问题出在哪里了,问题出在脚本的快速请求上,页面没有完全加载,我对此进行了延迟,工作正常!你不应该迭代页码吗?而不是“1.html”,使用类似fs.write((i+'.html'),page.content,'w');
?