Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.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
搜索JavaScript_Javascript_Jquery_Html - Fatal编程技术网

搜索JavaScript

搜索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.

我正在用JavaScript做一个搜索脚本

它应该获取多个URL的HTML内容并搜索其中的字符串,如果匹配,则将页面内容保存在HTML文件中

我对此有些问题。为什么?

它会获取第一个URL的内容,但在下一次搜索中不会获取指定URL的内容

代码如下:

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');