Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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
PhantomJS在弹出窗口中执行JavaScript进行数据提取_Javascript_Jquery_Node.js_Phantomjs_Screen Scraping - Fatal编程技术网

PhantomJS在弹出窗口中执行JavaScript进行数据提取

PhantomJS在弹出窗口中执行JavaScript进行数据提取,javascript,jquery,node.js,phantomjs,screen-scraping,Javascript,Jquery,Node.js,Phantomjs,Screen Scraping,所以我有一个网页,上面有一些人的照片。当你点击这个人的照片时,JavaScript被执行并产生一个弹出窗口,其中包含一些更详细的信息,比如描述等 每张照片的链接如下: <a href="javascript:void(0)" data="10019" class="seeMore"></a> 首先,我想从基础开始,从一个人身上提取描述等。所以我想执行上面的JavaScript来编写弹出窗口,当我在弹出窗口上时,我可以在弹出窗口上提取div的内容 我看了幻影,真的不知道

所以我有一个网页,上面有一些人的照片。当你点击这个人的照片时,JavaScript被执行并产生一个弹出窗口,其中包含一些更详细的信息,比如描述等

每张照片的链接如下:

<a href="javascript:void(0)" data="10019"  class="seeMore"></a>
首先,我想从基础开始,从一个人身上提取描述等。所以我想执行上面的JavaScript来编写弹出窗口,当我在弹出窗口上时,我可以在弹出窗口上提取div的内容

我看了幻影,真的不知道从哪里开始。我已经使用Cheerio从页面获取了一些简单的信息,我想继续通过JS执行弹出窗口,然后从中提取数据


任何帮助都将不胜感激,因为我是一个屏幕抓取的新手。

你可以用类似的方法来做


别忘了覆盖/取消页面。onPageCreated是在离开主页之前创建的。

,基于cheerio,支持无头浏览器,目前还不支持。似乎基于git页面的CSS选择器?我不知道我从未使用过它,它基于cheerio,所以可能是的。但它还不支持在无头浏览器中执行javascript,请参见路线图。谢谢,我将尝试一下,看看是否可以使用它。请参见我的编辑。单击必须在页面上下文中完成。
page.open(yourUrl, function(success){
    // mainPage is loaded, so every next page could be a popup
    page.onPageCreated = function onPageCreated(popupPage) {
        popupPage.onLoadFinished = function onLoadFinished() {
            popupPage.evaluate(function(){
                // do something in popup page context like extracting data
            });
        };
    };

    // click to trigger the popup
    page.evaluate(function(){
        document.querySelector("a.seeMore").click();
        // or something from here: http://stackoverflow.com/questions/15739263/phantomjs-click-an-element
    });
});