【解決方法】location.hrefが変更されたときのウィンドウイベントを追跡するにはどうすればよいですか?


こんにちは、みんな。 Web サイトからコンテンツを取得しようとしています。HTML ページには複数のページのデータが表示され、各ページのコンテンツには 6 × 15 div 項目が含まれています。
これらの div 項目の下部には、 前のページ..ページ 1..ページ 2..ページ 3….次のページ.. のようなページ ラベルをリンクすると、これらのラベルの属性 ‘href’ は別の ‘location.href’ にリンクします。
F12 コンソールで JavaScript コードを作成して、これらすべての div 項目情報を取得したいと考えています。 それを機能させることが可能かどうかはわかりません。
私が知っていることは、BOM にはグローバル オブジェクト、ウィンドウがある、このグローバル オブジェクトのイベントを追跡していること、各ページのラベルをクリックしたときに新しいページが読み込まれたイベントをキャプチャしたいと考えており、DOM ドキュメントを使用して div アイテムを取得することです。

私が試したこと:

そのようなコード:

JavaScript
window.addEventListener('load', () => {
    //1.fetch div items
    //for(var item of document.querySelectorAll('div.item')) {}
    
    //2.find next page label and click
    //var next_page = document.querySelector('a.next');
    //next_page.click();
    
});

最初のページ ラベルをクリックして、各ページ項目の更新ループをトリガーしようとすると、DevTool コンソールが新しいコンテキストに変更されたように見えますが、JS コードは機能しません。
BOM ウィンドウはグローバル オブジェクトであり、新しいウィンドウを開いていないため、新しいページのコンテンツは同じウィンドウに読み込まれます。ページ ラベルをクリックしたときに新しいコンテンツ ページでウィンドウの「読み込み」イベントがトリガーされないのはなぜですか
location.href を変更しましたか?

解決策 1

まず、サイト所有者の許可がなければ、これは倫理的ではありません。あなたの利益のために、サイト所有者のサーバーに負担がかかる可能性があります。

サイト上の要素をクリックするには、その要素 ID を取得し、それを使用して自動的にクリックする必要があります。この場合は、ページをロードするための「a」要素です。 「a」要素は ID が「paginator」の div に含まれており、内部の各要素を選択してクリックします –

JavaScript
<script>
    window.addEventListener('load', function() {
        //Get all the 'a' elements inside the paginator div...
        var links = document.querySelectorAll('.paginator a');

        //Iterate through each link and trigger a click event for each...
        links.forEach(function(link) {
            link.click();
        });
    });
</script>

コメント

タイトルとURLをコピーしました