如何使用PhantomJS更改选择值

时间:2016-10-25 17:02:53

标签: javascript node.js web-scraping phantomjs web-crawler

我在节点(节点模块)内使用PhantomJS制作了一个刮刀。

我正在尝试从页面上的表中获取数据(url)。 页面加载时,它只显示表格的25条记录。有一个'选择'在底部,你可以改为' All'查看所有记录。如何将选择的值更改为' All'在返回HTML之前?

var phantom = require('phantom');

phantom.create().then(function(ph){
    ph.createPage().then(function(page){
        page.open(url).then(function(status){
            console.log(status);

            page.property('content').then(function(content){
                console.log(content);

                page.close();
                ph.exit();
            });
        });
    });
});



<select name="qs-rankings_length" aria-controls="qs-rankings" class="jcf-hidden">
    <option value="100">100</option>
    <option value="200">200</option>
    <option value="-1">All</option>
</select>

1 个答案:

答案 0 :(得分:1)

我就是这样做的。

page.evaluate(function() {
    $('#select_element_selector').val('All').change();
});

我假设您在页面上有jQuery。

或者,没有jQuery:

page.evaluate(function() {
    document.getElementById('select').selectedIndex = 0;
    // or use document.getElementById('select').value = 'All';
}