Problem mit der Cookie-ZustimmungHallo zusammen,
Beim Versuch, den HTML-Code einer Webseite zu öffnen, erhalte ich nur den Cookie-Zustimmungstext und nicht den Seiteninhalt.
Wenn ich zum Beispiel in Großbritannien bin und versuche, die jmp-Homepage zu öffnen, bekomme ich Folgendes:
//:*/
Page = open("https://www.jmp.com/");
/*:
String( "<HEA... 2588="" total="" characters="" ...="">
" ) assigned.
//:*/
print (Page);
/*:
"<SCRIPT type="\!"text/javascript\!"">
function callAjax(url, fallbackUrl, callback){
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function(){
if (xmlhttp.readyState === 4 &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp; xmlhttp.status === 200){
callback(xmlhttp.responseText);
}
}
xmlhttp.open(\!"GET\!", url, true);
xmlhttp.timeout = 3000; // time in milliseconds
xmlhttp.ontimeout = function() {
console.log(\!"countrycode xhr request timed out\!");
window.location.replace(fallbackUrl);
}
xmlhttp.send();
}
function findInLocales(locales, cookielocale) {
var i = 0;
var found = \!"\!";
while (i &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt; locales.length &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp; !found) {
if (locales[i].substring(2) === '_' + cookielocale.toLowerCase()) {
found = locales[i];
}
i++;
}
return found;
}
function geoResetURL(locales) {
var windowReplacement = window.location.href;
var regex = /\/[a-zA-Z][a-zA-Z]_[a-zA-Z][a-zA-Z]\//;
var regextest = /[a-zA-Z][a-zA-Z]_[a-zA-Z][a-zA-Z]/;
windowReplacement = windowReplacement.replace('.geo.', '.');
var match = document.cookie.match(new RegExp('(^| )usr_locale=([^;]+)'));
var cookielocale = '';
if (match != null &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp; match.length &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt; 2) {cookielocale = match[2];}
if (!cookielocale.match(regextest)) {
var result;
var code = Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
callAjax( '/services/countrycode?'+code, windowReplacement,
function (result) {
var jsonresult = result.replace(/[()]/g, '');
cookielocale = findInLocales(locales, (JSON.parse(jsonresult)).address.country_code);
if (locales.indexOf(cookielocale) != -1) {
windowReplacement = windowReplacement.replace(regex, '/' + cookielocale + '/');
}
window.location.replace(windowReplacement);
});
} else {
if (locales.indexOf(cookielocale) != -1) {
windowReplacement = windowReplacement.replace(regex, '/' + cookielocale + '/');
}
window.location.replace(windowReplacement);
}
}
(function () {
var locales = ['en_us','en_be','de_at','zh_cn','en_dk','fr_fr','de_de','it_it','ja_jp','ko_kr','en_nl','en_ch','en_gb','en_ca','fr_ca','zh_tw','pt_br','es_mx','es_es','en_au','en_hk','en_my','en_ph','en_in','en_sg','es_ar','es_cl','es_co','es_pe'];
geoResetURL(locales);
}) ();</SCRIPT>
<P>Redirecting ...</P>
"
</HEA...>
Vielen Dank für jeden Vorschlag in die richtige Richtung.
Ron
SkripterstellungBetreff: Problem mit der Cookie-ZustimmungÖffnen Sie die Entwicklertools in Ihrem Browser (F12), wählen Sie die Registerkarte Netzwerk und gehen Sie zu jmp.com. Schauen Sie sich von dort aus die Domains / Dateien an und versuchen Sie, die "richtige" zu finden:


Versuchen Sie nun, diese zu öffnen.
Dieser Ansatz könnte funktionieren oder Sie zumindest näher bringen, abhängig von der Website und dem, was Sie von dort erhalten möchten.
Betreff: Problem mit der Cookie-ZustimmungDanke schön @jthi ,
Ich habe in den Entwicklertools nachgesehen, aber noch nicht geschafft, es als Befehl zu knacken.
Ich habe es geschafft, das HTML von zu bekommen http://jmp.com/ indem Sie die folgenden Schritte ausführen:
1) Datei >> Internet öffnen >> Webseite.
2) Öffnen Sie jmp.com als Webseite

3) Cookies interaktiv akzeptieren / nicht akzeptieren

4) Führen Sie die folgende Anweisung aus:
page = open ("https://www.jmp.com/en_gb/home.html")
Hinweise: Die Cookie-Genehmigung gilt nur innerhalb derselben jmp-Sitzung. Danach werden die Einstellungen nicht gespeichert.
Diese Methode ist in meinem Fall nützlich, da in jeder Sitzung nur Informationen von einer Domäne abgerufen werden. Daher ist die manuelle Genehmigung nicht allzu schwierig. Wenn das Skript beim Abrufen von Daten Domänen überschreitet, wäre es schön, dies irgendwie zu automatisieren.
Diese Methode hat auch für die Webseite funktioniert, von der ich eigentlich Daten abgerufen habe, also ist sie insofern zuverlässig.