Raspberry No IP autologin Script.. HILFE

  • Ich hab erste Erfolge erzielt!

    [code=php]
    from selenium import webdriver
    url='https://www.noip.com/confirm-host?n=......'
    browser = webdriver.Firefox()
    browser.get(url)
    browser.get(url)
    capthcaboxframe = browser.find_element_by_xpath('//iframe[starts-with(@src, "https://www.google.com/recaptcha/api")]')
    browser.switch_to.frame(capthcaboxframe)
    checkbox = browser.find_element_by_class_name('recaptcha-checkbox-checkmark')
    checkbox.click()
    [/php]url entsprechend mit Eurem Confirm Link ersetzen.

    Der Code erfordert eine GUI oder X11-Forward via Xming - aber auch nur um zu sehen ob es klappt. Später kann man natürlich "virtual display" nutzen ;)

    Was dann allerdings passiert ist dass man bestimmte Bilder auswählen muss :(
    "Select all images with a store front"

    Wartet man einige Zeit (glaub 30 Sekunden) dann gibts ein Timeout und man kann erneut "checkbox.click()" ausführen... Aber dann erscheinen wieder die Bilder...

    Wie das gelöst werden kann weiß ich derzeit noch nicht :-/

  • Hallo meigrafd,

    vielen Dank für deine Unterstützung ;) ich möchte mit so was nur ungern deine Zeit rauben, wenn der Aufwand zu groß ist bestätige ich weiterhin manuell. Also fühl dich bitte NICHT genötigt hier einen Weg zu suchen... Ich habe den Thread nur aufgegriffen, weil ich ursprünglich glaubte, dass das o.g. Skript bereits diese Bestätigung abnimmt. Wenn deine Neugier dennoch geweckt ist, steh ich natürlich nicht im Weg :D

    Ich habe gestern beim Testen erstmal manuell bestätigt, in 30 Tagen schlägt das Thema wieder auf... dann kann ich gern erste Skript-Erfolge antesten...

    LG Micky

  • Das mache ich aus eigenem Interesse :)

    Was ich nun noch benötige ist ein Weg um nur den neuen Frame mit den Bildern zu speichern... Dazu habe ichs mit PIL probiert, allerdings gibts zum einen eine Fehlermeldung und zum anderen speichert er die ganze Seite nicht aber den Bereich den ich glaube auszuwählen:

    Das float Problem hab ich bereits beim resize Befehl, aber hier weiß ich nicht wie ich das fixen könnte :s

    //EDIT: Habs

    [code=php]
    browser.switch_to.default_content()
    captchaframe = browser.find_element_by_xpath('//iframe[starts-with(@src, "https://www.google.com/recaptcha/api2/frame")]')
    bounding_box = (
    int(captchaframe.location['x']), # left
    int(captchaframe.location['y']), # upper
    int((captchaframe.location['x'] + captchaframe.size['width'])), # right
    int((captchaframe.location['y'] + captchaframe.size['height']))) # bottom
    imgname = '/tmp/captcha.jpeg'
    browser.save_screenshot('/tmp/test.jpeg')
    base_image = Image.open('/tmp/test.jpeg')
    cropped_image = base_image.crop(bounding_box)

    base_image = base_image.resize((int(cropped_image.size[0]), int(cropped_image.size[1])))
    base_image.paste(cropped_image, (0, 0))
    base_image.save(imgname)
    [/php]


    So, nun wär der einfachste Weg sog. "Human-powered CAPTCHA-solving service" zu nutzen, zum Beispiel 2captcha.com da zahlt man 0.5$ für 1000 captcha's und würde somit einige Jahre zurecht kommen ;)
    Aber, Ehrgeizig wie ich bin will ichs erstmal so irgendwie lösen :daumendreh2:

    //EDIT2: Hmmm oder es kostet sogar gar nichts :-/ Zumindest musste ich gerade bei einem Test über die alte Methode und API nichts bezahlen

  • Kleiner Zwischenbericht:

    Ich hab mittlerweile eine Lösung mithilfe von 2captcha.com gefunden. Man muss sich dort halt anmelden und seinen API captcha KEY verwenden.
    Sofern man dort ein paar Captcha's löst (als Worker) kann man über die alte API auch Captcha's einreichen die dann (hoffentlich korrekt) von jemandem gelöst werden. Leider sind diese "Worker" Tätigkeiten nur für einen Tag gültig, letztlich müsste man also $1,20 einzahlen um 1000 Catpcha's selber einschicken zu können.

    Zum Beispiel holt mein oben gezeigter Code nur den Teil des Bild-Captcha's (Google reCAPTCHA v2) raus der benötigt wird:

    Laut Anforderung soll man alle Bilder auswählen die "store front" entsprechen.

    Mein Script sendet nun das Bild an 2captcha.com und wartet eine bestimmte Zeit auf Antwort. Die für dieses Bild entsprechende Antwort lautete:

    Code
    ['1', '5', '6']


    Es hat also jemand Bild 1, 5 und 6 als "store front" identifiziert... Das stimmt soweit auch.
    Leider kommt es aber abunzu auch mal vor das niemand eine Lösung absetzt oder eine Falsche...

    Ich werkel jetzt noch an der Handhabung die entsprechenden Images automatisiert anzuklicken, was soweit auch schon funktioniert - muss nur noch Wiederholungen einbauen sofern die Antwort doch nicht richtig war und auf ein neues Captcha reagieren etc.
    In einigen Fällen kommt es leider auch vor das bereits ausgewählte Einzelbilder neu geladen und verändert werden, also nicht der komplette Catpcha sondern nur Einzelbilder des zB 3 x 3 Frames.... Das zu handhaben ist mir zZt nicht möglich :( Auch kann nicht nur eine Abfrage kommen sondern nach Erfolg eine weitere Fragestellung.

    Eine Lösung ohne "Human-powered CAPTCHA-solving service" scheint es nicht zu geben da die Analyse der Bilder äußert komplex wäre.

  • Das ist ja ein äußerst interessanter Beitrag :)
    Hab mich schon verwundert weswegen ich ständig jetzt ne E-Mail bekomme um nach 30 Tagen den Account zu verifizieren.
    Wäre natürlich echt super, wenn das irgendwie automatisch funktionieren würde.
    Aber das mit dem Captcha hatte ich bisher noch nicht, mußte mich halt nur auf NO-IP einloggen und dann den Button drücken.


  • Also mal ganz ehrlich...bevor ich so einen Aufwand betreibe um eine IP bei einem DNS ändern zu können würde ich einfacher einen eigenen DynDNS Server aufsetzen.

  • Hallo,
    also ich hab das mit dem script hinbekommen, dass der raspberry die Anmeldung jeden Sontag automatisch durchführt. Dies konnte ich sehr gut auf dem Dashboard von Noip unter letzter ligin nachvollziehen.

    Nun habe ich die beiträge hier gelesen, dass dies jetzt doch alkein nicht ausreicht.
    Was mich jedoch wundert ist, dass ich in der Vergagenheit nicht so eine Mail wie hier beschrieben wird erhalten habe. Wo auf dem Dashvoard erkennt man den das die 30 Tage rückwärts gezählt werden, bis der Host abläuft bezw. neu bestätigt werden muss. Denn auch das konnte ich nicht erkennen.

  • Hmmm... Eigentlich müsste ich dafür ja Geld verlangen - zumindest ein mal für etwas das ich entwickelt hab :P

    Mittlerweile bin ich soweit das es zu 95% perfekt funktioniert.
    Nachteile:
    * Man muss Guthaben auf 2captcha.com haben, was sich zwar zum testen als "Worker" generieren lässt aber bis man da mal über zB 0.5$ kommt dauert es ewig... Zum testen nicht weiter schlimm da reichen 2-3 Workertätigkeiten.
    * Zum testen nutze ich zZt noch den normalen Firefox, der manchmal Probleme macht und sich wegen eines Profil-Problems nicht laden lässt... Es wird 5x versucht ihn zu laden.
    * Leider scheinen einige "Worker" gerade bei den reCAPTCHAs irgendeinen Mist anzuklicken um trotzdem Geld zu kriegen da 2captcha das nicht kontrollieren/verifizieren kann. Auch hier werden 5 Wiederholungen von meinem Script durchgeführt.
    * reCAPTCHA ist wie gesagt manchmal so fies und läd nur einzelne kleine Bilder nach - zB. soll man alle Häuser auswählen, erst sinds nur 3 aber wenn man eins anklickt wird das Bild neu geladen und abgewählt, man muss dann die selbe Position erneut klicken; oder es erscheint dann aber kein Haus mehr und diese Veränderung erkennt mein Script derzeit noch nicht...
    * Bei langsamen Internetverbindungen dauert es länger bis zB die Checkbox geklickt wurde, dann funktionieren meine "sleep"s in solchen Fällen nicht.
    * Man sollte unbedingt tmpfs für /tmp/ aktivieren da dort sehr viel herum geschrieben wird: Screenshot der Seite um dort das Captcha Bild rauszulutschen sowie zZt jedes mal ein Profile Verzeichnis für FireFox: systemctl enable tmp.mount
    * Die profile Verzeichnisse sind jedes mal 15MB groß, die müssten dann auch noch gesäubert werden - hoffentlich aber nur solange man Firefox nutzt....

    Für den späteren Einsatz will ich aber nicht mehr Firefox sondern PhantomJS verwenden sofern es damit auch funktioniert - weiß ich zZt aber noch nicht ;)
    FireFox verballert jedenfalls unheimlich viel Rechenleistung.

    Was natürlich auch noch fehlt wäre ein Script was die Mailbox auf eine bestimmte Email prüft, daraus den "Confirm-Link" raus holt und erst dann dashier erst aktiv werden könnte.

    Aktuell sieht es so aus:

    Scriptausgabe:

    ...und es ist wirklich gelöst :cool:

    Zwischen CAPCHA_NOT_READY vergehen jeweils 3 Sekunden. Insg. macht er das zZt 40 mal (einstellbar) - reicht i.d.R.

    Noch ein Beispiel:

    Spoiler anzeigen


  • Hallo meingraf: da warst du ja sehr fleißig. Toller Einsatz von dir.
    Wäre es aber evtl. nicht einfacher das man ein script schreibt, sodass der raspberry sich bei noip einlogt, den aktiven host einmal kurz deaktiviert und sofort wieder aktiviert. Das ganze 2 mal im Monat. Somit würde man doch bestimmt nicht die Mail bekommen

  • Gute Idee, weiß ich aber nicht ob das funktioniert, müsste man mal testen - geht dann halt erst irgendwann in den nächsten 30 Tagen.

    In wiefern das angemeldet sein einen Unterschied aus macht, ob man da überhaupt eine reCAPTCHA Abfrage zu Gesicht kriegt, werde ich heute mal testen. Mein reCAPTCHA solver funktioniert jedenfalls schon mal ;)

    //EDIT: Bei mir macht das kein Unterschied. Wenn man angemeldet ist kommt trotzdem eine reCAPTCHA Abfrage

  • Ich hab nun einige weitere Problemchen lösen können:

    * Das Problem mit dem FireFox Profil hat mit der Geschwindigkeit der SD oder angeblich allgemein des Pi's zu tun. Firefox benötigt zu lange um zu starten was mit der Übergabe "timeout=60" beim initialisieren behoben werden kann.
    * Alle temporär erzeugten Firefox Profile werden beim beenden des Scripts gelöscht.
    * tmpfs scheint für Firefox Profile nicht zu funktionieren - wieso konnte ich bisher nicht herausfinden. Wie man ein Profil einmalig erzeugen lässt und für spätere Verwendung wiederverwerten kann, muss ich auch noch herausfinden...
    * Ändert sich ein Einzelbild eines Captchas wird einfach eine erneute Anfrage an 2captcha des kompletten Captchas gesendet - keine Sonderbehandlung.


    Nun probierte ich erst mal an die Implementierung von PhantomJS. Der große Vorteil von PhantomJS wäre, das komplett auf ein Browser wie Firefox verzichtet werden könnte sofern die jeweilige Webseite bzw das was man automatisieren möchte JavaScript nutzt....
    Leider ist im apt-get Repository eine recht alte Version 1.4.1 vorhanden, aktuell wäre aber v2.1 ...
    Alternativ gäbe es einen 3 Jahre alte v1.9 pre-compiled Version für armv6l (Pi 1): https://github.com/aeberhardo/phantomjs-linux-armv6l/
    Alternativ gäbe es einen 1 Jahr alte v2.0 pre-compiled Version für armv7l (Pi 2 & 3): https://github.com/mitghi/phantomjs-2.0.0-armv7
    Die Sache wieso das relevant sein könnte: Ab PhantomJS v1.5 benötigt man kein "virtual display" aka Xvfb mehr.

    Tja, nur leider funktioniert das in diesem Fall nicht :wallbash: Die Bilder werden dann nämlich nicht angezeigt also ist das hierfür wertlos =(

  • @meingraf
    gıbt es jetzt eıgentlıch eıne lösung um den host bei noıp über ein script zu bestâtıgen ?
    Ich habe heute dıe Maıl erhalten, dass ich den host bestaettıgen muss, da er sonst ın 7 Tagen ablâuft :(

    Liebe Grüße

  • @meingraf:
    wenn ich auf deinen link Beitrag 55 im neuen forumsbereich klicke erhalte ich die Meldung dass ich keine Berechtigung habe darauf zuzugreifen

    Dir fehlt die Berechtigung, diese Seite zu betreten. Grund dafür könnte einer der folgenden sein:
    Dein Account wurde entweder eingeschränkt oder du wurdest aus dem Forum ausgeschlossen.
    Dir fehlt die Berechtigung, diese Seite zu betreten. Versuchst du auf eine Administratoren-Seite zu kommen? Lies in den Forenregeln, ob du diese Aktion durchführen darfst.
    Dein Account wartet auf Aktivierung oder Moderation. (Aktivierungscode erneut zuschicken)
    Du rufst diese Seite direkt auf, anstatt das entsprechende Formular oder den entsprechenden Link zu benutzen.

  • In Beitrag#55 ist ein Link wo der neue Forums Bereich beschrieben wird und welche Bedingungen erfüllt sein müssen damit man den Inhalt des Bereiches sieht. Diese Bedingungen hast du nun mit deinem letzten Beitrag erfüllt.

  • Ich hab schon gedacht ich bin blöd. Aber jetzt hab ich das mit den 15 Beiträgen erst gelesen.
    Naja, da fehlen noch welche. Kann ich wohl vorerst nix dran ändern.Für stille Mitleser ist soetwas immer etwas blöd, aber ich kann'S aber auch verstehen.

    Einmal editiert, zuletzt von sugram (24. September 2016 um 15:28)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!