7

私はWebページのスクレイピングに取り組んでいます。AJAXページ付けが実装されています。Webサイトはasp、つまり拡張子.aspxのページで開発されているため、最初のページ以外のページからデータを取得するためにページ付けフォームを送信しようとしましたが、成功しませんでした。こちらをご覧くださいコードAJAXページ付けが実装されたすべてのasp.netページからデータをスクレイピングしたので、私の質問は、phpからページ付けリンクをクリックする方法です。つまり、サーバー側でjQueryまたはjavascriptを実行できますか?

Node.jsを使用してサーバー側でjavascriptを実行できることは知っていますが、ApacheおよびPHPで使用する方法がわかりません。

4

7 に答える 7

5

PhantomJSを使用して、他のサービスのHTMLページを操作します。このようなPHP用のライブラリがあります。

CasperJSは、PhantomJS上に構築されたライブラリであり、いくつかの一般的なテスト/スクリプトタスクを自動化できます。

リモートページを操作する必要はないが、jQueryセレクターを使用してHTMLからデータを抽出する場合は、Cheerioを使用します。

于 2015-11-28T09:41:54.960 に答える
3

実際、JavaScriptはサーバー側で実行できます。

node.js

ただし、ここでの解決策は、AJAXを使用してページ付け用のPHPスクリプトを呼び出すことです。これは、サーバー側のjavascriptがこの問題にあまり意味をなさないためです。

于 2013-02-27T10:20:35.253 に答える
1

あなたにできることは

<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>

上記の例では、4つのページネーションリンクがあり、そのリンクでクリックイベントを実行してAJAX呼び出しを行い、AJAX成功でコールバック表示結果を希望どおりに表示します。

ただし、jQueryはNode.jsを使用するサーバーでは機能しないことに注意してください。

于 2013-02-27T10:23:17.737 に答える
1

いいえ、jQueryはユーザーのWebブラウザー(javascriptインタープリター内)で実行されるため、サーバー側でjQueryを実行することはできません。サーバー上でコードを実行できるPHPスクリプトに対して、jQueryを介してAjax呼び出しを行うことができます。

于 2013-02-27T10:18:22.537 に答える
0

JQueryとJavascriptはクライアント側の言語であり、ページネーションの場合、これはjQueryを使用して簡単に実現できます。

Ajaxは、ページレンダリングなしでサーバーと通信するために使用でき、ユーザーにより良い「クライアント側」のエクスペリエンスを提供できます。Ajaxを使用してサーバーに接続し、jQueryを使用してサーバーから返されるアクションを実行できます。

于 2013-02-27T10:18:52.117 に答える
0

ajaxを使用すると、簡単にページネーションを行うことができると思います。それ以外の場合は、本当にサーバー側のjsを使用したい場合。次に、Node.jsを試してください

于 2013-02-27T10:20:15.267 に答える
0

私はこれをやろうとしました、そしてそれは苦痛でした。

私の推奨事項(2020年)は、特にReactを使用している場合は、https ://cheerio.js.org/を使用することです。

于 2020-04-26T08:10:13.477 に答える