Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Script läuft nicht auf neuer Seite?
#5
Ich habe es jetzt mal angepasst sodass es für den Moment funktioniert:
Code:
// ==UserScript==
// @name         blabla
// @namespace    blabla
// @version      0.1
// @description  try to take over the world!
// @author       You
// @include  *google.de*
// @require       http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js
// @run-at        document-end
// @grant        none
// ==/UserScript==

$(document).ready(function(){

    let urlhier = location.href;
    const reggooglemain =/https?:\/\/(www\.)?google.de(\/)?/;
    const reggoogleres=/https?:\/\/(www\.)?google.de(\/)search\?q\=.*/;
    //https://www.google.de/search?q=abc

    if(urlhier.match(reggoogleres)){googleres();return;}
    else if(urlhier.match(reggooglemain)){google();return;}


    async function google(){
        console.log("Inside google main function!");
        await sleep(3000);
        var ranstring=getrandomstring();
        location.replace("https://www.google.de/search?q="+ranstring);
    };

    async function googleres(){
        console.log("Inside google res function!");
        await sleep(3000);

        var divs=document.querySelectorAll("div[style='width:600px']");
        console.log("Es sind "+divs.length+" div Elemente da!");



        //<div class="g Ww4FFb tF2Cxc" lang="de" style="width:600px" data-hveid="CCAQAA" data-ved="2ahUKEwjh9JiI8Y_5AhVOiv0HHVzeBHkQFSgAegQIIBAA">

        var wind=null;

        for(let i=0;i<4;i++){
            wind=window.open(divs[Math.floor(Math.random()*divs.length)].querySelector("a[href]").href);
            await sleep(2000);
            //loop for
            //sleep
            //scroll
            for(let i2=0;i2<4;i2++){
                try{
                    console.log("scrolling....");
                    //scrolling not working
                    wind.scrollTo(200, 0);
                    await sleep(500);
                    wind.scrollTo(0,0);
                }catch(e){}
                await sleep(400);

            }
            wind.close();
            await sleep(2000);
        }

    }

    function getrandomstring() {
        var h=Math.floor(Math.random()*13);
        var result = '';
        var charactersup = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
        var characterslow='abcdefghijklmnopqrstuvwxyz';
        result = result+charactersup.charAt(Math.floor(Math.random() *
                                                       charactersup.length));

        for ( var i = 1; i < h; i++ ) {
            result += characterslow.charAt(Math.floor(Math.random() *
                                                      characterslow.length));
        }
        return result;
    }

    function sleep(ms) {
        return new Promise(resolve => setTimeout(resolve, ms));
    }

})

Aber das halt auch nur weil ich den spezielleren Regex zuerst benutzen lasse.

Irgendwie scheint es noch nicht so zu passen mit den Regex, weil irgendwann will ich ja bspw. 6 regex Ausdrücke da stehen haben und es soll nur genau ein Regex auch passen auf die aktuelle URL .

Und dass google.de/search?q=abc dann nicht den Regex für google.de UND den für google.de/search?q= triggert!'

Viellicht hatte ich auch das mit dem match() falsch verstanden, dass das das nicht so ganz genau match, sondern eher guckt ob der regex in der url als Teilstrin gvorkommt oder so...

Edit: nahc googlen: Yup, match() testet ob der regex einem Teil des Strings matched und gibt rigendwie eine Lsite an Resultaten zurück...
Habe jetzt die form regex.test(string) benutzt, damit funktioniert es endlich! :-)
Zitieren


Nachrichten in diesem Thema
RE: Script läuft nicht auf neuer Seite? - von bernd - 24.07.2022, 08:14

Gehe zu:


Benutzer, die gerade dieses Thema anschauen:
1 Gast/Gäste