AW: [PHP]Warum kann ich diese Seite nicht parsen ?
Zitat:
Finde ich den String 'id="secTok"', aber sobald ich 'value=' ranhängen will finde ich wieder nichts.
Auch wenn du schon eine andere Lösung gefunden hast:
Das Problem ist einfach dass man Leerzeichen escapen muss.
Code:
id="secTok" value=(.*)>
->
Code:
id="secTok"\ value=(.*)>
AW: [PHP]Warum kann ich diese Seite nicht parsen ?
Man muss nicht, man kann.
Folgende Zeichen muss man escapen: [\^$.|?*+(){}
AW: [PHP]Warum kann ich diese Seite nicht parsen ?
Also um nochmal zu meinem anderem Problem zu kommen, ich hab mich mal ein wenig über JS schlau gemacht. Also dieser wert "bgresponse" (botguard_response (?!)), scheint in einem ausgelagertem JS errechnet zu werden und zwar hier:
view-source:https://www.gstatic.com/bg/8t6xRTWi_...jWGYjd6Ah74.js
Ich bin mir nicht sicher ob ich den JS richtig interpretiere , noch ob ich JS überhaupt richtig verstehe, aber ich versuch es mal ...
Code:
<script src="https://www.gstatic.com/bg/8t6xRTWi_FXHnzuqUVtggIwKweZllZLFjWGYjd6Ah74.js"></script>
<script type="text/javascript">
function gaia_attachEvent(element, event, callback) {
if (element.addEventListener) {
element.addEventListener(event, callback, false);
} else if (element.attachEvent) {
element.attachEvent('on' + event, callback);
}
}
function gaia_getElementsByClass(className) {
if (document.getElementsByClassName) {
return document.getElementsByClassName(className);
} else if (document.querySelectorAll && document.querySelectorAll('.' + className)) {
return document.querySelectorAll('.' + className);
}
return [];
};
//Hier wird 'bgr' erstellt und an den Submit Button 'createaccount'
//rangehängt, dessen wert ' bgr.value =response;' wird in
//https://www.gstatic.com/bg/8t6xRTWi_FXHnzuqUVtggIwKweZllZLFjWGYjd6Ah74.js errechnet (?)
var gaia_botguardSubmit = function() {
if (document.bg) {
document.bg.invoke(function(response) {
//Ist dieses 'input' eine übergabe an https://www.gstatic.com/bg/* ?
var bgr = document.createElement('input');
bgr.type = 'hidden';
bgr.name = 'bgresponse';
bgr.value = response;
document.getElementById('createaccount').appendChild(bgr);
});
}
};
//ist das hier der errechnete string aus 'view-source:https://www.gstatic.com/bg/8t6xRTWi_...jWGYjd6Ah74.js' ?
document.bg = new botguard.bg('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');
var safeKtInit = function() {
try {
return doKtInit();
} catch (e) {}
};
safeKtInit();
document.getElementById('createaccount').onsubmit = function() {
if (!gaia_termsOfServiceOnSubmit()) {
return false;
}
document.getElementById('submitbutton').disabled = true;
try {
doKtSubmit();
} catch (err) {}
try {
gaia_phoneNumberOnSubmit();
} catch (err) {}
try {
gaia_botguardSubmit();
} catch (err) {}
return true;
};
Aus dem ewig langem string hinter 'document.bg = new botguard.bg' wird durch encryption oder einem anderem Algo ein viel kürzerer string der so aussieht:
Code:
bgresponse=%21Awew1T-UAQA5ACMI_EbafRM78N8l9Q0QcGeG7tKjmmizVv0orTYenfw6BbdiIcm25ZsIbEdbIsvgI4mV4yvGkNJRAgAAAF4NAC5_3frBiSsHPGnL4MXFaQVEQe2DtrYadEFB7YO2thp0QUHtg7a2GnRBQfyStXh1
Jedenfalls denke ich mir das so, kp ob das nur eine Annahme ist.
Evtl errechnet 'document.bg = new botguard.bg' ja eine checksumme aus dem gesendetem HTTP request, oder aus irgendwelchen Pixeln die geklickt werden ?
Wie arbeitet JS überhaupt, könnte ich mit z.b. cURL auf das bg.js (botguard) auch einige werte schicken und mir so einen string 'bgresponse' errechnen lassen ?
AW: [PHP]Warum kann ich diese Seite nicht parsen ?
Zitat:
Zitat von
inout
Man muss nicht, man kann.
Du hast Recht. Ich hab das gerade in Ruby und C# nachvollzogen (Was anderes hab ich hier auf dem Rechner nicht zur Hand).
Ich escape das seit Jahren also ohne Effekt. Das macht mindestens 1-2 Minuten die ich mir an Tipparbeit erspart hätte, hätte ich das früher bemerkt :(
AW: [PHP]Warum kann ich diese Seite nicht parsen ?
Also nach eingehender Recherche bin ich jetzt doch zu dem Ergebnis gekommen, das es mit PHP NICHT (ohne weiteres) möglich ist JS auszuführen noch zu parsen (hat inout ja auch schon auf der ersten Seite angesprochen, aber ich hab es nicht so mit Delphi ;)).
Ich hatte noch den Ansatz den Submit Button von Hand zu klicken, um dem JS zu zeigen das ein Mensch den Button klickt (sollte eh nur ein Mailgen für googlemail werden und die reCaptchas hätte man auch noch von Hand machen müssen, also wäre der eine klick nicht weiter wild) und das die regi nicht von einem Script ausgefüllt wird, sondern wirklich von nem Browser geladen wird.
Aber das geht auch nicht, mit php/curl kann man sich zwar den Button holen, aber da ist es genau das gleiche Problem wie vorher: Das JS erkennt das der Button nicht wirklich im Browser geklickt wurde, sondern nur Parameter übergeben werden ... bzw. das curl den SRC zwar ließt und auch holt, aber ihn eben nicht ausführen kann.