是否可以在服务器端运行jQuery?

时间:2013-02-27 10:16:26

标签: php javascript jquery web-scraping screen-scraping

我正在进行网页抓取已经实现了AJAX分页,因为网站是在asp中开发的,扩展名为.aspx的页面我尝试提交分页表单以从其他页面获取数据而不是第一页但是没有取得任何成功,看看这里使用Scraping data from all asp.net pages with AJAX pagination implemented的代码,所以我的问题是如何点击php中的分页链接,即是否可以在服务器端运行jQuery或javascript?

我知道Node.js可用于在服务器端运行javascript,但不知道如何在Apache和PHP中使用它

7 个答案:

答案 0 :(得分:3)

事实上,JavaScript可以在服务器端运行。

node.js

但是,您的解决方案是使用AJAX调用PHP脚本进行分页,因为服务器端javascript对此问题没有多大意义。

答案 1 :(得分:3)

使用PhantomJS与其他服务上的HTML页面进行交互。有像this这样的PHP库。

CasperJS是一个基于PhantomJS构建的库,它允许自动执行一些常见的测试/脚本任务。

如果您不需要与远程页面交互但希望使用jQuery选择器从HTML中提取数据,请使用Cheerio

答案 2 :(得分:2)

你能做的是

<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">

    $(function()
    {
        $('ul li a').on('click',function()
        {
            var href = $(this).attr('href');

            $.ajax(
            {
                url         : href,
                data        : passData,
                dataType    : 'html'
                beforeSend  : function()
                {

                },
                success     : function(response)
                {
                    //display it as needed...
                }
            });
        });
    });

</script>

<ul>
    <li><a href="paging.aspx?page=1">1</a></li>
    <li><a href="paging.aspx?page=2">2</a></li>
    <li><a href="paging.aspx?page=3">3</a></li>
    <li><a href="paging.aspx?page=4">4</a></li>
</ul>

在上面的示例中,我有四个分页链接,在该链接上单击事件我进行AJAX调用,然后在AJAX成功中回调显示结果作为您的愿望。

但请记住,jQuery无法在服务器上使用Node.js。

答案 3 :(得分:1)

不可能在服务器端运行jQuery,因为jQuery在用户Web浏览器中运行(在javascript解释器内)。您可以通过jQuery对一个可以在服务器上运行代码的PHP脚本进行Ajax调用。

答案 4 :(得分:1)

JQuery和Javascript是一种客户端语言,对于分页,可以使用jQuery轻松实现。

Ajax可用于在没有页面呈现的情况下与服务器通信,并且可以为用户提供更好的“客户端”体验。您可以使用Ajax连接到服务器并使用jQuery执行从服务器返回的操作。

答案 5 :(得分:1)

我认为使用ajax你可以轻松地进行分页。如果你真的想去服务器端js。然后尝试Node.js

答案 6 :(得分:0)

我试图这样做,这很痛苦。

我的建议(在2020年),尤其是在使用React的情况下,建议使用:https://cheerio.js.org/