• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Zwei Werte teilen

Reflexivpronome

New member
Hallo alle zusammen,

gerne möchte ich aus der Webseite von https://www.immobilienscout24.de/ einige Werte auslesen und Bearbeiten -> diese dann in der Console darstellen.

immobilienScout24.png

Die Werte werden auch in der Console angezeigt.
immobilienScout24-2.png

Was ich machen möchte:

Preis pro Quadratmeter = Preis / Wohnfläche ;

Preis pro Quadratmeter =74000/26

Leider weiß ich nicht wie ich die Werte verheiraten kann?
  • console.log(entry1);
  • console.log(entry1);

Kann mir jemand helfen?

Aktuell scheitere ich beim: Zwei Werte zu teilen. ( den Code benutze ich im Chrome als Tampermonkey Extension)
z.B.
Code:
 var crawlPrice = document.getElementsByClassName("font-nowrap");
 var priceSearchstring = /\d+\.\d+/g;

 var crawlLivingspace = document.getElementsByClassName("font-nowrap");
 var livingspaceSearchstring = /(.*) m²/g;


for(var i = 0; i < crawlPrice.length; i++){

         var priceResult = String(crawlPrice[i].innerHTML).match(priceSearchstring);
         var livingspaceResult = String(crawlLivingspace[i].innerHTML).match(livingspaceSearchstring);


    if (!!priceResult) {
        priceResult.forEach(function(entry1) {
        console.log(entry1);
        });
    }



    if (!!livingspaceResult) {
        livingspaceResult.forEach(function(entry2) {
        console.log(entry2);
        });
    }

        crawlPrice[i].style.background = "yellow";
    }

Vielen Dank im Voraus
 
Du musst versuchen, den Preis und die Fläche in der gleichen Iteration zu bekommen. Dann musst du die Strings in Zahlen umwandeln und anschließend das Ganze ausgeben:
Code:
document.querySelectorAll(".result-list-entry [data-is24-qa=attributes]").forEach(function(result){
	let price, area;
	result.querySelectorAll("dd").forEach(function(dd){
		if (dd.nextSibling.textContent.match(/preis/i)){
			price = parseFloat(dd.textContent.replace(".", "").replace("€", "").trim())
		}
		else if (dd.nextSibling.textContent.match(/fläche/i)){
			area = parseFloat(dd.textContent.replace(".", "").replace(/[^0-9,]/g, "").replace(",", "."))
		}
	});
	if (price && area){
		const dl = result.querySelector("dl").cloneNode(false);
		dl.innerHTML = `<dd class="font-nowrap font-highlight font-tabular">${(price / area).toFixed(2).replace(".", ",")} €/m²</dd><dt class="font-tabular onlyLarge font-xs font-lightgray attribute-label">Quadratmeterpreis</dt>`;
		result.appendChild(dl)
	}
});
 
Zurück
Oben