Web Scraping

Nexuz89

Mitglied
Hallo zusammen

Ich bin ein blutiger Anfänger im Programmieren, und komme leicht an meine Grenzen : /.
Da ich eine coole App Idee habe, und sie umsetzen möchte.
Brauche ich Daten von einigen Shops (Name der Produkte, Preis usw.).
Ich habe mich im Internet erkundigt und habe das Web Scraping entdeckt.
Ich habe versucht eine Seite auszulesen, leider gibt es einige Probleme, die ich habe, dabei bräuchte ich Tipps und evtl. Lösung Vorschläge.
Im beigefügten Bild ist schon zuerkennen dass ich eine Seite ausgelesen habe, leider ist der Button weitere Artikel anzeigen vorhanden.
Mein Programm Stoppt an dieser stelle und liest die Seite nicht weiter aus.
Kann mir jemand bei diesem Problem behilflich sein?

Vielen Dank schon mal im Voraus.
 

Anhänge

  • scraping.jpg
    scraping.jpg
    1,2 MB · Aufrufe: 22

Nexuz89

Mitglied
Der Code zum Programm :

public static void main (String [] args) throws Exception{

final String tab = "grill";




final HttpResponse<String> response = Unirest.get("https://www.coop.ch/de/search/?tab=product")
.queryString("text",tab)
.queryString("TAB",tab)
.asString();

final Document htmlSnippet = Jsoup.parseBodyFragment(response.getBody());

for (Element prduktesuche : htmlSnippet.select("div.productTile__wrapper"))


{
System.out.println(prduktesuche.child(0).text());

}


}
}
 

LimDul

Top Contributor
Du dürftest da schnell an die Grenzen kommen. Ohne eine funktionierende Browser-Implementierung dürfte das Scraping sehr sehr schnell nicht mehr weiterführen. Du bekommst so nur den statischen Teil der Webseite. Da läuft aber noch viel Java-Script/AJAX Kommunikation. Und ohne die, fehlen dir die relevanten Informationen.

Das ist also eine Mammut-Aufgabe, da brauchst so was wie einen Webdriver: https://chromedriver.chromium.org/getting-started

Keine Ahnung ob das damit geht, hab ich mich selber damit nicht beschäftigt.
 
K

kneitzel

Gast
Webseiten nach so Daten auswerten halte ich für den falschen Weg, denn
a) ist es überkompliziert.
b) ist es sehr zerbrechlich - fast jede Änderung an der Seite führt zu einer nicht Funktionalität.

Den Shop den du ansprechen willst, kenne ich nicht, aber evtl. hat er ja auch eine api über z.B. WebServices? Dann würdest du eine dafür vorgesehene Schnittstelle nutzen.

Amazon, eBay und Co haben diese Schnittstellen z.B. und am Beispiel Amazon kann man gewisse Probleme aufzeigen:
So Bots, die Seiten abgreifen, sind unerwünscht, d.h. mit einfachen http Requests fliegst du oft direkt auf die Nase.
Selbst wenn da ein UserAgent simuliert wird, sind 503er regelmäßig vorhanden. Und je mehr Zugriffe von dir kommen, desto mehr 503er bekommst du....
Wenn du Pech hast bis hin zur Blacklist!

Also offizielle APIs verwenden und Dokumentation gut lesen. Gerade die Großen haben throttle Einstellungen, d.h. gewisse Aufrufe darf man nur eine bestimmte Anzahl mal in einer Zeiteinheit machen. Bei Amazon ist das oft 1x pro Sekunde ... aber Produktsuchen um ASINs zu kriegen z.B. nur alle 5 Sekunden (so ich mich richtig erinnere).
Und das sind dann Schnitttstellen, die für Kunden (Gruppen) sind .... bei Amazon z.B. die Gruppe, die ein Pro Verkäuferkonto haben ....

Danach würde ich etwas schauen. Denn das andere dürfte in eine Frikelei ausarten und coole App-Idee ist schnell etwas anderes, wenn dann 1* Beurteilungen hageln, weil etwas nicht mehr geht ....
 

MoxxiManagarm

Top Contributor
Das ist also eine Mammut-Aufgabe, da brauchst so was wie einen Webdriver: https://chromedriver.chromium.org/getting-started
Absolut richtig. Der Chromedriver alleine reicht aber nicht, du brauchst einen Rahmen drumherum. Solche Rahmen sind z.B. Selenium (eigentlich ein Testtool, du könntest aber es missbrauchen, gibt es auch für Java) oder z.B. auch Electron (basiert auf NodeJs, hat mit Java nichts mehr zu tun). Mit diesen Tools kannst du einfach auf die Seite navigieren und dann JS-Code ausführen, u.a. JQuery um bestimmte Tags auszulesen
 

Nexuz89

Mitglied
Vielen dank für Ihre Antworten.
Ich benötige nur einmal die ganzen daten aus den Shops. Die ich dann abspeichere auf ein Datensever.
Meine potenzialen User Nutzer werden die Preise usw. aktualisieren.
Da ich die daten nur einmal benötige ist es nicht bisschen unkomplizierter ?
 
K

kneitzel

Gast
Wenn es einmalige Aktionen sind, dann ist das durchaus handhabbar. Viel Arbeit, aber da sind gewisse Risiken nicht gegeben, die ich erwähnt habe.
 

mihe7

Top Contributor
Wenn das einmalig ist, würde ich einen ganz anderen Ansatz wählen und unmittelbar über den Browser gehen. Dort mittels JavaScript das Zeug rausfiltern und einen Request gegen einen Server absetzen, der den Spaß aufzeichnet.
 

MoxxiManagarm

Top Contributor
Beispiel:

HTML:
<a href="/mitglied/moxximanagarm.57275/" class="username " dir="auto" data-user-id="57275" data-xf-init="member-tooltip" itemprop="name" id="js-XFUniqueId53">MoxxiManagarm</a>

Das ist der HTML Code für mein Profil-Link unter meinem Avatar hier in diesem Beitrag (habe ich rauskopiert). Dieser lässt sich mittels JQuery selektieren, ich nehme dafür jetzt mal data-user-id für die Selektion.

Code:
$('a[data-user-id="57275"]:first')

Den Code kannst du auch in der Browser Console eingeben jetzt und hier, du bekommst meinen Profillink als Ergebnis. Nun kannst du darauf einfach click ausführen

Code:
$('a[data-user-id="57275"]:first').click()

Dann öffnet sich das kleine Popup als würdest du manuell darauf klicken




Das sieht dann etwa so aus zum Nachvollziehen
1593691393770.png

Und genau das geht auch mit der oben von mir beschriebenen Weise mit electron oder auch Selenium, bei JavaFX WebView vielleicht auch, bin mir nicht sicher.
 

mihe7

Top Contributor
Wenn man auf der Seite ein Kategorie auswählt und dann in die Konsole
Javascript:
function productObject(e) {
    const result = {};
    result.title = e.querySelector('h2').innerText.trim()
    result.price = e.querySelector('dd[data-product-price]').innerText
    return result
}
const products = Array.prototype.map.call(document.querySelectorAll("div.productTile-details"), e => e)
JSON.stringify(products.map(productObject))
schreibt, bekommt man z. B.

JSON:
"[{"title":"Aargauer Traum","price":"6.00"},{"title":"Bio Demeter Bûche","price":"4.70"},{"title":"Bio Demeter Ur-Buur","price":"7.35"},{"title":"Brebiou","price":"5.30"},{"title":"Brebiou Tradition","price":"5.15"},{"title":"Brie de Meaux","price":"4.50"},{"title":"Cambozola","price":"4.20"},{"title":"Cathedral City Cheddar","price":"6.25"},{"title":"Chaumes","price":"5.15"},{"title":"Crémoulin","price":"6.30"},{"title":"Der scharfe Maxx","price":"6.75"},{"title":"Der scharfe Maxx 365","price":"7.75"},{"title":"Emmi Luzerner Rahmkäse","price":"7.25"},{"title":"Emmi Luzerner Rahmkäse rustico","price":"7.50"},{"title":"Emmi Sennen Mutschli","price":"6.10"},{"title":"Fine Food Le Gruyère","price":"8.10"},{"title":"Fine Food Manchego Gran Riserva","price":"9.25"},{"title":"Fine Food Stilton DOP","price":"8.10"},{"title":"Fol Epi","price":"7.85"},{"title":"Fondue Hausmischung","price":"6.85"}]"
ausgegeben.
 

Nexuz89

Mitglied
Vielen dank
kann ich mir auch direkt alles in eine CSV Datei speichern ?
Ca so wie auf dem bild ?
 

Anhänge

  • Screenshot (102).png
    Screenshot (102).png
    12,2 KB · Aufrufe: 7

Nexuz89

Mitglied
Wenn man auf der Seite ein Kategorie auswählt und dann in die Konsole
Javascript:
function productObject(e) {
    const result = {};
    result.title = e.querySelector('h2').innerText.trim()
    result.price = e.querySelector('dd[data-product-price]').innerText
    return result
}
const products = Array.prototype.map.call(document.querySelectorAll("div.productTile-details"), e => e)
JSON.stringify(products.map(productObject))
schreibt, bekommt man z. B.

JSON:
"[{"title":"Aargauer Traum","price":"6.00"},{"title":"Bio Demeter Bûche","price":"4.70"},{"title":"Bio Demeter Ur-Buur","price":"7.35"},{"title":"Brebiou","price":"5.30"},{"title":"Brebiou Tradition","price":"5.15"},{"title":"Brie de Meaux","price":"4.50"},{"title":"Cambozola","price":"4.20"},{"title":"Cathedral City Cheddar","price":"6.25"},{"title":"Chaumes","price":"5.15"},{"title":"Crémoulin","price":"6.30"},{"title":"Der scharfe Maxx","price":"6.75"},{"title":"Der scharfe Maxx 365","price":"7.75"},{"title":"Emmi Luzerner Rahmkäse","price":"7.25"},{"title":"Emmi Luzerner Rahmkäse rustico","price":"7.50"},{"title":"Emmi Sennen Mutschli","price":"6.10"},{"title":"Fine Food Le Gruyère","price":"8.10"},{"title":"Fine Food Manchego Gran Riserva","price":"9.25"},{"title":"Fine Food Stilton DOP","price":"8.10"},{"title":"Fol Epi","price":"7.85"},{"title":"Fondue Hausmischung","price":"6.85"}]"
ausgegeben.

Kann ich mir auch die URL auspuckenlassen von den einzelnen Produkte ?
 

mihe7

Top Contributor
OK, da muss man ein klein wenig ändern:
Javascript:
function productObject(e) {
    const result = {};
    result.title = e.querySelector('h2').innerText.trim()
    result.price = e.querySelector('dd[data-product-price]').innerText
    result.url = e.querySelector('a').href
    return result
}
const products = Array.prototype.map.call(document.querySelectorAll("div[data-producttile-wrapper]"), e => e)
JSON.stringify(products.map(productObject))
 

Nexuz89

Mitglied
OK, da muss man ein klein wenig ändern:
Javascript:
function productObject(e) {
    const result = {};
    result.title = e.querySelector('h2').innerText.trim()
    result.price = e.querySelector('dd[data-product-price]').innerText
    result.url = e.querySelector('a').href
    return result
}
const products = Array.prototype.map.call(document.querySelectorAll("div[data-producttile-wrapper]"), e => e)
JSON.stringify(products.map(productObject))

Vielen vielen dank , eine frage noch wie kann ich jeden link getrennt anzeigen z.b so

{"title":"Emmi Couronne",
"price":"4.35",
"url":"https://www.coop.ch/de/kaese-laender/schweiz/emmi-couronne/p/3080407?context=category"},

{"title":"Emmi Winzerkäse",
"price":"7.35",
"url":"https://www.coop.ch/de/kaese-laender/schweiz/emmi-winzerkaese/p/3080207?context=category"}]"
 

mihe7

Top Contributor
Die letzte Zeile stellt den Spaß einfach als JSON-String dar. Du kannst es darstellen, wie Du möchtest. Zum Beispiel kannst Du products.map(productObject).map(p => '"' + p.title + '",' + p.price + ',"' + p.url + '"').join('\n') schreiben, dann bekommst Du eine CSV-like-Ausgabe.
 

Nexuz89

Mitglied
Die letzte Zeile stellt den Spaß einfach als JSON-String dar. Du kannst es darstellen, wie Du möchtest. Zum Beispiel kannst Du products.map(productObject).map(p => '"' + p.title + '",' + p.price + ',"' + p.url + '"').join('\n') schreiben, dann bekommst Du eine CSV-like-Ausgabe.

Da ich ein echter Anfänger bin :/ könntest du mir den Code vollständig schreiben... Danke
 

Nexuz89

Mitglied
Die letzte Zeile stellt den Spaß einfach als JSON-String dar. Du kannst es darstellen, wie Du möchtest. Zum Beispiel kannst Du products.map(productObject).map(p => '"' + p.title + '",' + p.price + ',"' + p.url + '"').join('\n') schreiben, dann bekommst Du eine CSV-like-Ausgabe.


Ich bekomme leider ein Syntex fehler, :/ an was könnte dass liegen ?
 

Anhänge

  • syntex fehler.png
    syntex fehler.png
    213,2 KB · Aufrufe: 7

MoxxiManagarm

Top Contributor
Die Zeile von mihe fehlt da, daher ist products undefined
Code:
const products = Array.prototype.map.call(document.querySelectorAll("div[data-producttile-wrapper]"), e => e)
 

mihe7

Top Contributor
Du könntest Dir auch Tampermonkey installieren und dann das folgende Script reinkopieren:
Javascript:
// ==UserScript==
// @name         coop2csv
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  coop2csv
// @author       mihe7
// @match        https://www.coop.ch/de/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    window.setTimeout(installButton, 1000)

    function installButton() {
        const elem = document.createElement('button')
        elem.innerText = 'Copy'
        elem.style = 'z-index: 1000; position:fixed; top:0; left:0';
        document.body.appendChild(elem);
        elem.addEventListener('click', _ => exportCsv())
    }

    function exportCsv() {
        let products = Array.prototype.map.call(document.querySelectorAll("div[data-producttile-wrapper]"), e => e)
        let csv = products.map(productObject).map(p => '"' + p.title + '",' + p.price + ',"' + p.url + '"').join('\n')
        console.log(csv)
        navigator.clipboard.writeText(csv)
            .then(_ => window.alert('In Zwischenablage kopiert'),
                  _ => window.alert('Fehler beim Kopieren in Zwischenablage'))
    }

    function productObject(e) {
        const result = {};
        result.title = e.querySelector('h2').innerText.trim()
        result.price = e.querySelector('dd[data-product-price]').innerText
        result.url = e.querySelector('a').href
        return result
    }
})();

Wenn Du die Seite dann lädst, sollte nach etwa einer Sekunde oben ein Copy-Button erscheinen. Wenn Du auf diesen klickst, wird das CSV erzeugt, in der Konsole ausgegeben und, wenn Du Glück hast, in die Zwischenablage kopiert.
 

Nexuz89

Mitglied
Klar, aber warum nicht einfach per Strg+V bzw. Strg+Shift+V einfügen?

Da es bestimmt über 10ts daten sind,
Ich hab schon ein Code entworfen bei Excel VBA leider stimmt der Code nicht ganz könnte da evtl jemand rüber schauen ?

Vielen dank

Sub InformationenImportieren()
'Variablen Definieren
Dim QuellDatei As String 'SpeicherOrt der TextDatei
Dim Zeile As Integer 'Laufvariable
Dim Inhalt As String 'Inhalt der TextDatei
Dim Information() As String 'Array der TextDatei
Dim i As Integer 'Laufvariable2
'Fehlermarker einf?gen

'Tabllenblatt aktivieren
ThisWorkbook.Worksheets("Milch-k?se").Activate
'Startwerte zuweisen
Zeile = 2
'QuellDatei ansprechen
QuellDatei = "C:\Users\Marcel\Desktop\Milch-K?se.txt"
'QuellDatei ?ffnen
Open QuellDatei For Input As #1
'Informationen in das Tabellenblatt eintragen
Do While Not EOF(1) 'Schleifen bis DatenEnde

'inhalt der Quelldatei zeilenweisen einlesen
Line Input #1, Inhalt
Informationen = Split(Inhalt, ",")
For i = 0 To UBound(Informationen)
'Infos , auf die richitig spalte aufteilen
If IsNumeric(Informationen(i)) Then
'wenn der wert im Array ein Name ist
ActiveSheet.Cells(Zeile, 2) = Informationen(i)
Else
'wenn der Wert im Array eine Zahl ist
ActiveSheet.Cells(Zeile, 1) = Informationen(i)
End If
Next
Zeile = Zeile + 1
Loop
'quelldatei schliessen
Close #1

End Sub
 

Nexuz89

Mitglied
Du könntest Dir auch Tampermonkey installieren und dann das folgende Script reinkopieren:
Javascript:
// ==UserScript==
// @name         coop2csv
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  coop2csv
// @author       mihe7
// @match        https://www.coop.ch/de/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    window.setTimeout(installButton, 1000)

    function installButton() {
        const elem = document.createElement('button')
        elem.innerText = 'Copy'
        elem.style = 'z-index: 1000; position:fixed; top:0; left:0';
        document.body.appendChild(elem);
        elem.addEventListener('click', _ => exportCsv())
    }

    function exportCsv() {
        let products = Array.prototype.map.call(document.querySelectorAll("div[data-producttile-wrapper]"), e => e)
        let csv = products.map(productObject).map(p => '"' + p.title + '",' + p.price + ',"' + p.url + '"').join('\n')
        console.log(csv)
        navigator.clipboard.writeText(csv)
            .then(_ => window.alert('In Zwischenablage kopiert'),
                  _ => window.alert('Fehler beim Kopieren in Zwischenablage'))
    }

    function productObject(e) {
        const result = {};
        result.title = e.querySelector('h2').innerText.trim()
        result.price = e.querySelector('dd[data-product-price]').innerText
        result.url = e.querySelector('a').href
        return result
    }
})();

Wenn Du die Seite dann lädst, sollte nach etwa einer Sekunde oben ein Copy-Button erscheinen. Wenn Du auf diesen klickst, wird das CSV erzeugt, in der Konsole ausgegeben und, wenn Du Glück hast, in die Zwischenablage kopiert.


Könntest du mir noch ein Code schreiben für Migros.ch schreiben dann kann ich vergleichen wie ich den Code in Zukunft umschreiben muss wäre echt nice
 

mihe7

Top Contributor
Im Prinzip musst Du halt einfach schauen, über welche Elemente Du an die benötigten Informationen kommst, deren CSS-Selektoren bestimmen, per querySelector bzw. querySelectorAll die Elemente rausfischen und z. B. per innerText oder auch href die gewünschten Inhalte extrahieren.

Für Migros könnte funktionieren:

Javascript:
// ==UserScript==
// @name         micros2csv
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       mihe7
// @match        https://produkte.migros.ch/sortiment/supermarkt/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    window.setTimeout(installButton, 1000)

    function installButton() {
        const elem = document.createElement('button')
        elem.innerText = 'Copy'
        elem.style = 'z-index: 1000; position:fixed; top:0; left:0';
        document.body.appendChild(elem);
        elem.addEventListener('click', _ => exportCsv())
    }

    function exportCsv() {
        let products = Array.prototype.map.call(document.querySelectorAll("article[data-testid='msrc-articles--article'"), e => e)
        let csv = products.map(productObject).map(p => '"' + p.title + '",' + p.price + ',"' + p.url + '"').join('\n')
        console.log(csv)
        navigator.clipboard.writeText(csv)
            .then(_ => window.alert('In Zwischenablage kopiert'),
                  _ => window.alert('Fehler beim Kopieren in Zwischenablage'))
    }

    function productObject(e) {
        const result = {};
        result.title = e.querySelector('[data-testid="msrc-articles--article-name"').innerText
        result.price = e.querySelector('[data-testid="msrc-articles--article-price"').innerText
        result.url = e.querySelector('[data-testid="msrc-articles--article-link"').href
        return result
    }
})();
 

Nexuz89

Mitglied
Im Prinzip musst Du halt einfach schauen, über welche Elemente Du an die benötigten Informationen kommst, deren CSS-Selektoren bestimmen, per querySelector bzw. querySelectorAll die Elemente rausfischen und z. B. per innerText oder auch href die gewünschten Inhalte extrahieren.

Für Migros könnte funktionieren:

Javascript:
// ==UserScript==
// @name         micros2csv
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       mihe7
// @match        https://produkte.migros.ch/sortiment/supermarkt/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    window.setTimeout(installButton, 1000)

    function installButton() {
        const elem = document.createElement('button')
        elem.innerText = 'Copy'
        elem.style = 'z-index: 1000; position:fixed; top:0; left:0';
        document.body.appendChild(elem);
        elem.addEventListener('click', _ => exportCsv())
    }

    function exportCsv() {
        let products = Array.prototype.map.call(document.querySelectorAll("article[data-testid='msrc-articles--article'"), e => e)
        let csv = products.map(productObject).map(p => '"' + p.title + '",' + p.price + ',"' + p.url + '"').join('\n')
        console.log(csv)
        navigator.clipboard.writeText(csv)
            .then(_ => window.alert('In Zwischenablage kopiert'),
                  _ => window.alert('Fehler beim Kopieren in Zwischenablage'))
    }

    function productObject(e) {
        const result = {};
        result.title = e.querySelector('[data-testid="msrc-articles--article-name"').innerText
        result.price = e.querySelector('[data-testid="msrc-articles--article-price"').innerText
        result.url = e.querySelector('[data-testid="msrc-articles--article-link"').href
        return result
    }
})();

Vielen dank

habe ich es mit lidl probiert leider funzt es nicht weis nicht was ich falsch mache
 

Anhänge

  • java.jpg
    java.jpg
    2,1 MB · Aufrufe: 7

LimDul

Top Contributor
Hi ich hab da eine Idee ich hab ca 30 shop von denen ich den Code brauche bzw. die daten ! bist du evtl. interessiert mir dabei zu helfen und dafür belohnt zu werden ?
An der Stelle mal ein kleiner Hinweis, da es nicht mehr nach einem reinen Hobby-Projekt aussieht. Das Scraping der Preis-Daten ist mindestens ein rechtlicher Graubereich, vermutlich eher verboten. Sprich, dafür kann dir unter Umständen eine Abmahnung ins Haus flattern.
 

Nexuz89

Mitglied
wäre echt nice wenn du die seiten noch auslesen würdest.


würde dir echt dankbar sein
 

Nexuz89

Mitglied
ich hab es die letzten 4 stunden versucht selber zumachen, leider scheiter es an diesen punkten:
  1. function productObject(e) {
  2. const result = {};
  3. result.title = e.querySelector('h2').innerText.trim()data-t-id
  4. result.price = e.querySelector('dd[data-product-price]').innerText
  5. result.url = e.querySelector('a').href
  6. return result
Ich weiss leider nicht wie ich den Http code auslese, ich erkenne die elemente nicht bzw sind sie immer anderest geschrieben :/
 

Nexuz89

Mitglied
ich hab es die letzten 4 stunden versucht selber zumachen, leider scheiter es an diesen punkten:
  1. function productObject(e) {
  2. const result = {};
  3. result.title = e.querySelector('h2').innerText.trim()data-t-id
  4. result.price = e.querySelector('dd[data-product-price]').innerText
  5. result.url = e.querySelector('a').href
  6. return result
Ich weiss leider nicht wie ich den Http code auslese, ich erkenne die elemente nicht bzw sind sie immer anderest geschrieben :/

Ich find das element nicht für die Artikel Bezeichnung ??
 

Anhänge

  • Screenshot (118)_LI.jpg
    Screenshot (118)_LI.jpg
    2,5 MB · Aufrufe: 11
G

Gelöschtes Mitglied 9001

Gast
Ich bin ja sonst eher von der gutmütigen Seite, aber das hier sieht in meinen Augen etwas zwielichtig aus: Jemand registriert sich im Forum und nahezu der erste Thread ist einer, in der in jedem zweiten Posting darum gebeten wird, dass andere für ihn Algorithmen schreiben, die Daten von Webseiten abgreifen oder das gar gleich komplett übernehmen sollen.
 

Nexuz89

Mitglied
hallo, nein ist es nicht, es ist mir selber bisschen unangenehm gefragt zuhaben leider bin ich ein totaler Anfänger und bin unerfahren und brauche die Unterstützung und bin sehr dankbar für eure Meinung.
Ich habe paar codes entschlüsselt (und ich denke ich werde besser :) ) leider auf lidl.ch bekomme ich den preis nicht raus.
 

Nexuz89

Mitglied
hallo, nein ist es nicht, es ist mir selber bisschen unangenehm gefragt zuhaben leider bin ich ein totaler Anfänger und bin unerfahren und brauche die Unterstützung und bin sehr dankbar für eure Meinung.
Ich habe paar codes entschlüsselt (und ich denke ich werde besser :) ) leider auf lidl.ch bekomme ich den preis nicht raus.

ich meinte den sreenshot
 

Anhänge

  • java.jpg
    java.jpg
    2,1 MB · Aufrufe: 8
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Web Scraping von URL Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben