[Playlisten] [Impressum und Datenschutzerklärung]

09F.1 Webcrawler in C# mit Regular Expressions und Threads


CC-BY-NC-SA 3.0

Tempo:

Anklickbares Transkript:

sich heute Vorhaben ist ein Webcrawleralso das was bei Google oder Bing bei den Suchmaschinenzu im Hintergrund läufteine Software die Webseiten durchgehtdie Software der Webcrawlerder kann zum Beispielbei zeitlicher Bismarck war gebaut Fragezeichen könnte der Staaten ?? sich angucken welche Links auf der Webseite sind die Götter der Verfolgunger erkennt auf dieser Webseite ist zum Beispieldieser Link hiermanches Seite zwei?? weitergehen aha darauf ist ein weiterer Link auf die der Seite einundzwanzigund dann auf die Test Seite zwei hundert fünfzehnund so weitersicher diese Art durch das Netz handeln ?? die Idee hinter einem Webcrawlerund startet bei einer Webseite oder bei der Anzahl von Webseiten die man kenntund kennt dann weitererkennen eine Website und dann verfolgen wir allerdings die auf der Webseitevorhanden sindund dann verfolgen wir allerdings die auf den Webseiten vorhanden sindund das geht natürlich exponentiellabmuss mittelfristig sein das angesichts?? vier verfolgtim Vergleich dann auchder Gedanke ist so dasWebzu erfassenman gucktimmer nach welche Links gibt es auf den Seiten die man schon kennt verfolgt diese Linksimmer weiter immer weiter man merkt sich was auf diesen Seiten stets Miss backen sich grob aus auf den Seiten steht die man gefunden hatKomma gucken welche Seiten besonders wichtig auf welche Seiten wird besonders oftverwiesendie Schein besonders wichtig zu seindas ist die Idee hinter einem Webcrawlersowas Punkt jetzt war einfacher Variante selbst in PDF sie Sharpdas Webzu kraulen wenn man so will Trautmann das Wetter abSpiderist auch ein schöner Begriff dafür verläuft die Spinneüber ihr Netzein Web Spiderdie Spinne die durch ihr Netz läuftwas soll's werdenund warum Stan geht nebenbeisind ThreadsNebengläubigkeitkann man Programm an mehreren Stellen gleichzeitig sein im Ablauf Fritzund auch noch ?? reguläre Ausdrücke wie finde ich denn jetzt eigentlich die Links auf den Webseiten wiederalso eine App in WPFsie Sharp Appmit WPFdie Oberflächewie üblichpacke das erstmals in eine einzige Behandlungsroutineeines Clubs reinDoppelklick um die ?? essbares und ihn dazu zu kriegen ?? endlich eingebundenund es muss erst mal an wie man Webseiten wo das relativ banalzum Browser hier zurückoberste Webseite war diese ihrCrawler Testnullman sich angucken wie man die kriegt es gibt eine nette Klasse fertig wo programmiert sie als WebclientAlliancewozu man es passen Usern haben mussich Systemnetähm war MC verwegen scheint sie erzeugen einen neuen Web Client hat tollwer hätte das gedachtsicherheitshalber muss man dem mitgebenwie die Zeichencodiert sind von den Seiten die er lehrt das ganze schöne ?? müssen es ja in Coding noch angeben?? zu Tage sollten die meisten Seitenin UTF-8codiert sein ?? hatte ich auch schon erwähntwie kriegen sie der deutsche Umlaute und chinesische Zeichen undZeichen reintypischerweise mit der von der Facharbeitoder hinter das ist nicht immer der Fallwas tunwenn nicht UTF-8 desirdischen jetzt nichtmal anguckendamit sage ich wie die Zeichen codiert sein sollenauf der Seite und nun kann ich sagendann hole mir doch einfach die Seitezum Beispiel ihr mit Taunusschenkungendie gesamte Webseite widerstehtund Bilder natürlich und alles andere was eingebunden ist den reinen Text der Webseiteuntergehen wird aber die URL an die Stadt hattevon meiner Seite das wäre dieganz großen el damit klar ist dass es keiner eins ist inzwischen?? wir wohnendie Webseite als Zeichenkette und Sinn das hier String kommt raus das Meer Kommaso sieht das aus also indrei Zeilenkriegen Sie eine Webseitegeladen als Zeichenketteohne Bilder und was sonst ?? Zentren ist nur den reinen Text der Webseitedes jetzt in der Zeichenkette Kündigung Klammer aufsowas jetzt passierenalso wir legen einen neuen Web scheint anStellenein wir warten die UTF-8 Kodierungauf den Seiten dieser Ladenund ein Versagen gezeichneterUnterlagen von dieser Adressevon meiner Website und jetzt steht ebendas was auf der Webseite steht alsQuelltext der Website der HTMLText steht jetzt in dieser ZeichenketteSsechs ?? sich die ?? könnendas steht dann da jetzt einen?? zeigt Komma dass das wirklich die Website istganz ?? BrowsergenausoMausklick RechtsseitenQuelltext anzeigen?? Browser kann sich das auch anzeigen lassen Simyo das ist genau das was auf der Webseite stehtalso wenn sieim Browsersowieso sowieso null Punkt HTML bei mir anfordern kriegen sie das geliefertdas liefert der Browser glich diese gelieferteBeschreibung von den Sachendie auf der Webseite stehen versteht?? die Webseite hat einen TitelseiteSeite null Website hat einen Titelnoch eine Überschrift hier H eins Überschrift erster Ordnung der Seite wohlnoch mal auf dieser Seite nur und dann kommt eineAuflistung?? noelendeULdas ist diese Auflistung mit Punktenund darin stehendiese Auflistung stehen zehn verschiedene Sachen sind jeweils LIElemente Elli startet da Ende dajedes LI Elemententhält einen LinkAnchor wieder Sternwarteim Eis des Asteht in jedem Eliterennenda fängtder Anchor anihr endete Anchor dazwischen steht nun HTML als lesbarer Textund das wichtigste für uns jetzt für diesen Webcrawler entstehen soll ist dieses Haare Foster steht worauf zeigt der Link zeigt aufdie Datei null HTML oder Beistrichmeine Dateiauf die URLverweist er null HTMLsind sie rauf gehen mit der Maus untensehen Sie das Schein Null HTMLdraufklicken was der Browser wohin er gehen muss ich wieder nach ?? Leitungen sollen sich auf die einst ein weiteres eins ?? gehen mussdass es die simpelste Art ?? Webseiten aufgebaut sein könne ?? normalerweise wenn sie Bilder drin haben diesen Jauch referenziertdie Bildermit anderen Befehlensie werden nach noch irgendwelche Programmzentren haben Javascriptdie stehenden ?? direkten oder die sind auch referenziert?? das ganze noch hübscher gestalten sie nicht alles in Times New RomanerscheintCSSeinzig das ?? könnte auch alles drin sein wenn sie typische Webseite aufmachen und Bildschirm und Bildschirmmitganz fürchterlichen Sachen gefüllt aber im Kern ist das was auf einer Webseite stattfindet?? Ohr und für den Korninteressiert mich das eben was sind welche Links sind auf der Seite die möchte ich Ausblicken diese links und dann weiter verfolgensollte sagen wo diese Webseite herkommt in der Tat vom Vormittag ein kleines Programm geschrieben das tausend Webseiten erzeugt hatund habe ich aber hochgeladenWebsitedas Programm was die tausend Webseiten erzeugt sie Anisschreibt einfach hierdas als es darum steht bis zum Scheiteltestseitefestraus und dann kommt eine Nummer der jeweiligen Seite unterschreibt Esslöffel Strauß zeitlich etwa die Testseitedann wird es wieder die Nummer einund ein physisches H eins ein und so weiter und ein Gesandter durchzuziehenganz billiges Programm das einfacheine Dateijeweils raus schreibt diese Seiten liegen tatsächlich als echte Dateien auf dem Serverwenn sieauf andere Seiten gehen aus Amazon ist oder die Fahrerseite und meine anderen Webseitenliegen typischerweise nicht als echte Dateien auf dem Server Prinzen wird in Echtzeit erzeugtsieht für den Browser genauso aus Wichtiges Wasserbrowsernkommt der Browserjetzt Chrome glaubt eine Datei zu ladenob sie Datei wirklich gibt ?? auf dem Server seiner Geschichte typischerweise nicht aber der Browser glaubt eine Datei zu ladenund in dieser Datei steht dann irgendwanndas HTMLin der Datei steht dann eben drinnen was jetzt wo wie auf der Seiteerscheinen soll und was was tun soll das Ergebnis das billigstewas man tun kann ?? allerdingsTextlinksÜberschriften istsowas auf der Seite stehenund uns interessieren jetzt die Linkswerden typischerweisewie komplizierterenLoch verschwinden Seite um Seite irgendwie das wasim Müll aussieht und definierbar aussieht aber darin werden sie genauso was finden ?? Haare Vergleichund so weiter die Bombe aus Becken vollautomatischdas jetzt der nächste Schritteines Webseitendatenmit drei Zeilencodekönnen Sie Webseiten andie spannende Frage ist wie kann man jetzt von der Webseite hier diese Links weiter rauskriegen Suche nach einem Muster ich suche nach einem Muster kleiner Aha ?? ist gleich Anführungszeichen obenund so weiter das ist was ich suche das Beistrich vores kommen reguläre Ausdrücke des Magnetichaben wie man sowas im Prinzip machen würde ??stoppen ??ich hab die Webseite geladen und es möchte ??Webseite?? sagen ?? schöndurchsuchennachAusdrücken von dieser Artdie Links möchte ich finden auf der Website und ?? möchte ich dir weiterverfolgenwohnteine der Artenin sichreguläre Ausdrücke Trackbacks RegionalexBeistrich dafür gibt's auch wieder eine eigene Klasseüber den auf denen ?? eres gleichauf so rund fünf hundertUsern Kommasteht inSystemtextRegionalexpressschützt derargentinische Krieg ?? der neun regulären Ausdruck anzulegen Lustigerweisehat die Klassesechsstatische Methoden die sowas könnenwir können zum Beispiel suchen nach Matches gibt es alle TrefferLolitas wächst die ?? zu eine Startmethodeinsbesondere kann man fragen wie viele Treffer es gibtund sie Mexikos zurück einem Match Collectioneine Versammlung ging sie zurücksein ?? sagenwas denn wieauf Treffer untersucht werden soll String Inputokay das wird es seinworin suchen wir Treffer auf der Website ist jetzige Zeichenkette es gelandet auf der Webseite suchen Trefferund es kommt der schwierige Teil gesprochen war das Musternach welchem Muster soll gesucht werdenum Treffer zu findenversuchen Komma sonst meist erst nachArenach dem Mustersichdeutlich einfacher zu verstehen ?? zwar keineschwierigen Geschichten besuchen dieses Mustergeladen die gesamte Webseite Leerzeichen geht esjetzt dieses MusterKomma zum Beispiel zählenZellen wie vieles gibt's Stefan zwargleich ähm Punkt ??Punktsollten jetzt jazehn auskommen ich hatte zehn Links sollten zehn sein müssen solchen Debugger auch angucken könnenwas es sonst noch alles gibtin dieser mit Collection drin der Liefer natürlich nicht nur die Zahlwir fahren wesentlich mehr so die Anzahlwoeine Trefferanzahl von zehn manchmal wirklich überraschtdie zehn Treffer gefundenund es Komma nachgucken was sie damit völlig noch ist es also gut sind zehnten das wussten wir schonwieder weiter klicken ist als Music könnte nämlich bei der Matchkollektionmit eckigen Klammern fragen wie bei der Liste und überlegen Sie es mit eckige Klammer weiter war mit Connectionund sich wirklich die zehn Treffer anguckendass in unserer zehn Treffer und dann können sie auch noch jeden Treffer fragennach diversen Geschichtenzum Beispiel nach dem wertvollen Bestand der letzte Treffer?? Überraschung ist Klammer auf aha Rave war der Trefferdas Windsor der allererste Schritt versickern Verständnis der Text vorgekommenan welchen Stellen so vorgekommenwie Finger wirklich die Position im Text raus das ?? NummerzeichenSie können sich auch von jedemTreffer sagen lassen oder den im Text stehtsie kann mit den eckigen Klammerfragen gibt den Treffer mit der Nummer dreies in Sichelindexesist das Zeichen mit der Nummer zwei hundert vierundvierzigTreffer mit der Nummer drei fängt Leerzeichen mit der Nummer zwei hundert vierundvierzig an der Treffer mit der Nummer vier?? gerademit der Nummer vierzehn Und-Zeichen zwei hundert einundachtzig?? jetzt will ich aber nicht wissen wie viele Treffer das sindmöchte bestimmtes Muster findenund aus den Musterteile raus blicken das was ich kann es hier nicht mit diesem festen AH Dev arbeitendas gesamteWissen bisschen ekligersind jetzt den ganzen Textaus einem Gesamtlink rein kopiertes gibt das neurotische garantiert rote Kringelso die Anführungszeichenbeenden jetzt hier die Zeichenkette dass es nicht lustigdieses Anfangszeichen sehen ?? ?? Zeichenkette zu machen sein soll Anführungszeichen zu?? Backslash Anführungszeichen zugenauso Backslash Anführungszeichen obenwenn jetzt die so Statebis sich ein Einzigverfahrengroße Zahl ?? Ausgang Komma der sich an unserer Seele zu ?? sollte man doch erst im Handbuch nachschlagen und dann ausprobieren ob es auch wirklich verstanden hatauf mich auf ein Treffen ??und dann formuliert es allgemein anohundPunkter fand seinerseitsüberraschendokay soweit so gut also wird aber genau dieser eine Zeichenkette darin gefunden das ist natürlich nicht lustigich möchte hier habenmüsste irgendwas stehen kann und ich möchte hier habendas Segel verstehen kann ?? ich überlege gerade das ?? bisschen fehlt es den zweiten dazu genommen habeBeistrichviel ich in den hinteren Timer wieder wegmuss gleich seine Suchenach Vorkommen von dieser Zeichenketteim Prinzipspitze Klammer aufAha ist gleichAnführungszeichen obenirgendwasAnführungszeichen obengrößerdass es was ich sucheund jetzt Komma welche bisschen reguläre Ausdrücke zwischen den Anführungszeichen zujetzt irgendwas stehenwas keine Anführungszeichenenthält das schreibe ich einfach in einfaches Gut da muss man in die Dokumentationgucken wie schreiben Sie ihnviele Sachenbeliebig viele Buchstaben die keine Anführungszeichensind es gibt erst mal eine Notation zu sagen kann Anführungszeichen obendie sieht so aus der Konzeptraum nicht drauf Beistrichso sind sie die Notation ausführen kann Anführungszeichen obenist ein Bereich von Zeichenund zwar deshalb die eckigen Klammern ein Bereich Und-ZeichenA bis Z zum Beispiel ?? ?? von Zeichenund mit dem sie Komplexdem Hut sagen sie das Gegenteil alle außer alle außer dem Anführungszeichen untendas heißt jetzt alle außer dem Anführungszeichen aufmöglichen Zeichen außerdem Anführungszeichen untenso will ich formulierenich suche nach dem Musterdes Klammer auf A ist gleichAnführungszeichen obenirgendwas was kein Anführungszeichenist Anführungszeichengrößeran sie was jetzt keiner schief gehtalso solide Wechsel schön sie sehenreguläre Ausdrücke als solche sind schon ekligund in den jetzt dann noch die Syntax von sie Sharp rein schlägt es ganz fürchterlich mit den ganzen Backslash Stadträtenmuss damit etwas über Gregnadas war eigentlich maleckige Klammer aufI ZirkumflexAnführungszeichen obeneckige Klammer zuvöllig nervigjetzt suche ich alsonach spitze Klammer aufund so weiterein Zeichen zwischen Anführungszeichen untenwas kein Anführungszeichenist Besucher Richter ein Zeichen was kann Anführungszeichen zunach beliebig vielen Zeichners und Sternchen dahintersteckt das beliebig viele von der Sorte lieber gerade nachKönner FragezeichenSchreiben als das eines oder keines von der Sortekönnen Plus schreiben das heißt mindestens eine von der Sorteoder Sternchenbeliebig viele von dieser Sorte jetzt habe ich das Muster formuliertBeistrich die was sie mit regulären Ausdrücken veranstalten können und wie hässlich das wirdeiner zum Schluss des ?? sagen hätte gerne ein Wort von dieser Sorte aber dieses Wort von jeder Sorte nicht und zehn Wörter von der Sorte und so weiterin beliebiger fast beliebiger Komplexitätgegeben ?? das Muster was ich haben will?? das noch vor laufender Sicherheit habe ?? sicher wieder zehn Treffer habensichaus angucken kann Wasserlinie Siebert gefunden hatund diese Schreibweisenhier mit den eckigen Klammern und dem sie Komplex und so weiter die muss man dem Sternchendie muss man sich dann irgendwann mal zu Gemüte führen diese durch die diversen Systemefast identisch als ob sie das nun heißen Schreiben oder Javascript schreibenoder sie scharf oder in Java schreiben?? sind fast identische Ausdrücke die man da rein schreibtSenat StandardPunkt ?? VerfahrenEssen wieder zehn Trefferund es kümmerte die einzelnen Treffer wieder anguckensind die einzigen Treffertatsächlichwie was erhofft habenvon null html bis neun hat MS es kann zwischen denAnführungszeichenhier kann alles mögliche steht nur eben kein Anführungszeichen untenes war fast am Ziel ist möchte nämlich auch das rauspickenzwischen den Anführungszeichenstehtes noch ?? Nummer raffinierterdieser Teil inzwischen Anführungszeichen untenwo ich gesagt habekann Anführungszeichenbeliebig viele davonden Teil den möchte ich raussaugenaus dem Text was kann ich tun was ich kann ich nursuchen ob ich Treffer habe sondernaus den Treffernkann ich noch Teile raus saugen das machen sie mit den runden Klammernden Teil den sie raus ?? wollenschließlich in runde Klammern ein und kann auch mehrere Teile gleichzeitig raussaugen sind Teile kann ?? benennenund alles mögliche in beliebiger KomplexitätKomma dickes Buch dazu schreibenaber schon einige Leute die Gebüsche zugeschrieben zu regulären Ausdrückenmit den runden Klammern sagen sie okay was jetztin den Anführungszeichenstehtdiesen ganzen teilte möchte ich aufsaugenwenn ich Treffer habe bitte merken was in den runden Klammern stehtund nach dem Teil kann ich jetzt fragen tatsächlich auf etwasnicht ganz publizierte Art abermuss schon wissen wie man danach jetzt fragen kannwas in den runden Klammern steht das landet in einer Grube in einer GruppeSie können mit den runden Klammern Groups ab zu gucken nachdem JürgenTreffer mit der Nummer dreiund darin die Groupsder Gips Überraschung zwei Groupskommen sie zwei Groups aneinmalalles was gefunden worden ist spitze Klammer auf?? und so weiteraber an der Stelle eins Indexeinstieggenau das was wir brauchendrei HTMLals die Fragenach dem soundsoviel Trefferund dann nach der grob mit der Nummer eins und dann kriege ich das was ich hier mit dem runde Klammer aufabgegrenzt habeauf EierKommaalsoschwing ?? X ist gleichdas sind alle Treffer ich frage jetzt nach dem Treffer mit der Nummer dreidavongibt mir die Groupsdie Teile in runden Klammern habe sie ?? gerade gesehen grob von null ?? ist alles ?? ist der komplette Treffer ich nehme Groups von einsund das ist immer noch sehr viel Informationda kann jetzt immer noch alles mögliche Fragen zum Beispiel wo fängt die an wie lang ist dieFrage nach dem Wert und ?? Zeichenketteist man das alles verstanden hat man Dach gegoogelt?? Zimmer alles zusammen was man brauchtkeinen Treffer mit der Nummer drei gibt ?? dieGruppe der Nummer eins davon den Wert und da muss jetzt drin stehen soll zu viel HTMLwie auch stimmtlediglichdrei Punkt hatte mir jetztso können Sie an die einzelnen Links kommenbesser an den groben Schlachtplanmit den sechs Zeilen die ihr stehen kriegen sietatsächlich den Text der einzelnen Schrott die die URLs der einzelnen Links raus auf der Webseitedas muss man jetzt passend verpackenumvon Webseite zu Webseite zu gehen allerdings auf jeder Webseite Abzug rasen zusammen und so weiter aberwasist ?? sagen was die Internetprogrammierungangeht Anführungszeichen obendas sind die sechs sein und damit ist die erledigt das meist es einfach schon eingebaut?? derVollständigkeithalber sollte ich ihn nochstell was dazu sagendieses Ahaist keine sichere Geschichtehatte Melville erlauben das hier noch Leerzeichen stehenmüsste auch funktionierenwas könnte man jetzt abfangen in dem man den regulären AusdruckPatienten steht das ist der reguläre Ausdruck SuchmusterAusdruckkönnte man noch im bisschen verbessern das ihr vor noch Leerzeichen stehen dürften es dürfen sogar Zeilenumbrüchedrinstehen??es können dann gesanglichjegliche Vorwürfe noch andere Sachen drin stehen Glas odersteilund ähnliche Geschichten dürfen davon noch drin stehtall das müsste man abfangen?? ich hab es einfach nur noch ?? Dudu dahin das offenbar nichtTodohaardürfenweitere Sachen stehen schon zudas muss man ordentlich behandelnund das auszuwandernseines Mann eine Woche programmieren muss und das wirkliche zu kriegen es gibt Hilfsprogrammedie das besser können es gibt HTML Parserdie sie seit ?? einladen und dann direkt nach ?? Bestandteil fragen können ?? Internetgibt es ja schon ein XMLParserdas Wetter fürchterlich ähnlich aus was ich immer sehen das ist der XML sieht fürchterlich ähnlich aus ist aber strikterWebseiten sind nicht so strikt und viele Webseiten sind auch das fehlerhaft und die Brause sind sehr großzügigdieser wird man mit dem eingebauten Parsersogar mehrere Base eingebaut in der Meditationverstehen würden XML verstehen würden ?? mit ?? kommt man deshalb nicht allzu weit ?? es gibtvon Drittanbieternsagen wir HTML Parserden ging das recht gut Komma das ist die Chance Lösungvon Smith leider nicht sauberalsovorsichtig an dieser Stelle wendet sich viel Zeit damit fassen könnenokayist Komma da mal eine Funktionbraucht eine nette Funktionder Mann einfachhier die URL geben kannund die Funktionguckt einfach was an Trefferngefunden ?? wirdauf der Seite ??Frau begann schon ein weiterdenkenwies gleich werden wir immer sofort was dazu das auch schon wieder?? ich möchte mir in einer Liste merkenwas raus gefunden worden ist welche URLs sind denn gefunden worden?? Elsist ??jetzt schreiben Sie doch mal eine kleine FunktionfreutSammler URLsdie kriechtdieURL der Seite die sie ab Grabensollund sollt alle URLs die sie findetin diese Liste darum reinschreibenist der Gedankeschon das Wesentliche dannlassen Sie das jetzt mal so umdiese URL oder irgendeine andere kommt hier an und von der Seitediese dann runterladensaugen sie allerdingsgrasen sie allerdings ab undschreiben sie in diese Liste rein so muss das ja nach funktioniertfür den Crawlermindestens dasMitte links merkeGuter Punkt absolut oder nicht absoluteine gute Idee erst mal ist mit den relativen Angaben hierzu arbeitenPunkt das kann schon mal ein?? okay es gibt so eine Basis URLfür alleBasisund das wird dann nur mit denzwoundvierzig Punkt HTML und so weiter arbeitenDanksagungsbasisURLplusund diese URL die da ankommthatte ich diese Basis URL trennen sondern ist auch nur von der Sorte?? sie neunzig Punkt HTMLetwas gleichmäßigerSuter musste der gleiche sein wie obennur das ich jetzt gleich die ganzen Treffer durchgehen muss und nicht nur den Referenten Nummer drei angucken kann?? das ?? das heißt erstens habe?? meinProkurist jetzt nach ?? Basis URL plus der URL die oben angegeben wird??ich suche nach Treffern der sich Extratrefferanzahlwahrscheinlich nicht und es kommt eben for-Schleife Spieldurch alle Treffer durch vor zwei ?? Tabulatorhier kommt es ebenAnzahl der Trefferund für jeden Trefferguck ich mir anMix für jeden Treffer guck ich mir dann?? das ist es ?? zu viele Trefferim von ihmdaraus mehr die Gruppe mit der Nummer eins der Wert der ?? ist das so zu viel HTML drin in dem Treffer mit der Nummer Idas will ich jetztin meine Liste herstellenoder sieURLs in die Liste soll das reinwie alle Treffer durchUL gefunden ??gefundenund die möchte ich in meine Liste reinschreibenerhältst Punkt erhältvon der ??Discovery mit Rudi einfach aufrufenund vor allem der Klasse ?? mehrfach aufrufenrufe ich jetzt erst mal mit meiner Startadresseauch von sich SagenssammlungURLsder ganze Kram hier sitzt lediglich sagte Sammlung URLsvonnull HTMLunserem sesselschwachenZimmer weg Punkt auf die schließende Schweifklammerbei Button Klick gebe direkt in die Funktion rein das etwas komplizierterWigan Athleticdie Funktion ?? einenLaden die Webseite unterbrochenvonden Treffer merken uns in dieser Liste URLsso große Unsinn wirdsoweitdie Liste ?? gucken steht in der Liste drinnensind Sachen stehen in der Liste drin schönvon nur HTML bis neun Atem zu seinist das Ding aber nicht am Kornwas bisher passiert ist wir sind in der Lage eine Webseite anzugebenwas es gefunden wird sind die Linkszu den nächsten Webseitenfange ich also Komma dass es der aller erste Schritt aber jetzt haben wir eigentlich allesparat wie baut man jetzt einen Crawler darausoder schreibt also nach Rekursionfür jede gefundeneSeiterufe ich noch mal diese Funktion auf und dann sucht die wieder nach den verlinkten Seitendie Site ist gefunden wordenüber den Link und dann muss auch die wieder nach den verlinkten Seiten und so weiter das schreit nach Rekursion?? Rekursion ist bisschen schwer zu behandeln und schwer zu zähmenSie dasgeht natürlichquasi exponentiellab hier wenn sie das veranstalten mit dem richtigen Interneteiner einzelnen Website auf einem Server Beistrich ganz so schlimm werden aber wenn sie das mit dem großenvollständigenWeb machen wir das nicht funktioniert Beistrich den um die Ohren weil sie viel zu viel Sachen speichern müssenwas ichstattdessen hier vorschlagen würdest folgendes bemerkt sich sozusagenJobs was muss noch getan werdenjede URL die herauskommtdie muss nach abgehandelt werdenKomma noch mal die Queuewiederholeneine Warteschlangevon Aufgaben die noch erledigt werden müssenwas ?? ?? arbeitet jede URLdie ich gefunden habedieser nicht besucht habe die muss ich abarbeitendes Raumes auch dazu in Form einer Queue das Wort welches im passenden Datentypimmer das schon mal Aufgabe eine neue Klasse gucken Punktin dieselbe Dateivoller ZaubertageTisch ?? Klammer zu der erstem Klasse war ?? eine neue Klassefür die Aufgabeeine Aufgabe des Hundes darstellen eine Websitebesuchen muss ?? wohnt erstmals mit dem Salzwasser Aufgabe nur drinstehenwas denn die Uhrüber das ?? Partyüberblick?? Wohnungerstelltdavonbau ich eine Warteschlangealle Webseiten die noch zu besuchen sind stell ich in eine Warteschlange ?? das wäre tatsächlicheine praktische Anwendung von dieser Warteschlangeist immer dafür zuständig diese Warteschlange ?? zu arbeiten?? dann habe ich das ganze?? sagen ?? sich spezialisiertkönnte man sagen ?? das Problem ist ?? mit Rekursion machen dass sie so ?? Kettenreaktion?? kriegenjetzt fünf nächste Nachbarn und wenn sie dann weitermachen und ein zwei drei vier fünf sechs sieben acht neun zehn elf zwölf dreizehn fünfzehn ?? das ein fürchterlich Explosionwas ich hier probieren würde ist das ich mir merke was zu tun istdie zentraleWebseitemerkt sich aus in fünf Sachen zu tun diese Sachen sind zu tunund dann fängt sie die erste davon anund merkt sich dann auch jetzt sind drei weitere Sachen zu tun und dann ist die erste abgearbeitetund dann fängt sie die zweite Anna sieht es sind vier weitere Sachen zu tunund ?? zweite abgearbeitetund so weiter und so arbeitetsie sich dann durch die Warteschlange durchso würde ich das probieren ?? bessere Kontrolle darüber der jetzt was und wie viel Vereine macht und in welche Tiefe das auch geht?? noch ein Wort sich nichtzehn Ebenen hinausgeht zehn Schritte hinausgeht ?? zu viel werdenokay also eine Warteschlange für solche Aufgabennicht jedoch Aufgabengeschlossenundjetztbräuchte man hier eine Funktiondie die Warteschlangeabgearbeitetwar?? schon ?? direkt reinsagen wir auf denButton Klick soll die Warteschlange abgearbeitetwerden ?? ich merke mir diese erste URL in der Warteschlange schon mal AufgabenvomTraktorblickmit Erscheinung wie sie mir passieren ??ich kann aber ganz deutlich sagenin diese Liste AufgabenlisteAufgabenstelle doch einfach in Queueeine neue Aufgabe nämlich die Debatte null Atem startetsie plötzlich?? für das alles mit abstrakterStimme massive vorgegebene Aufgabedes Maschinchen generiert selbst neuer Aufgabenist dann aber abarbeitenwas ist das Maschinchen wie schreiben Sie ?? Maschinchen hinwas die Warteschlangebearbeitetdie Funktion ?? der Schalterbeamte sozusagenSisi Lichtschalter war Schreibenwir haben jetzt eine erste Person zum Schalter geschickt?? HTMLder SchalterbeamtePunkt sich jede Person anvor dem Schalterund was und vierzig passiert je nach dem was da gefunden wird denen plötzlich drei oder vier oder zehn neue Version in der Schlangenach dem was bei der Arbeiter gefunden wirdwie schreiben Sie das hin was was groß am Schalter passiertalso wenn die Queue abgearbeitetist ?? fertig solange wir die Queue nicht abgearbeitetistarbeiten wir hierschreibensolange sie noch was zu tun ist zu lange ?? noch Leute am Schalter stehen Aufgabenauf dem Förderband liegen solange wir noch Aufgaben auf dem Förderband liegen muss ich was tun zwar jede Aufgabe bearbeitenjeder Aufgabe an Beistrich den jetzt für jede Aufgabeso die URL sammeln und wieder der Warteschlange hinzufügtzum US ?? haben wir schon was sinkendes auf Sammlung URLsvon der URL die in der Warteschlange steht sollte man die URL aus der Wasser wohl als es klingt?? wahrscheinlich den Aufgangaufgab welche Aufgabe steht in der Warteschlange davon hole ich dann die ganzen US Aufgabevon dieser Aufgabedie in der Warteschlange steht also AufgabenPunktDequeueguck ich mir anpersischer URL widerstehtder Aufgabeaktuellist die Aufgabean was wir links auf der Webseite sind es gibt mitsammen URLssich natürlich ungeschickterweisedie Aufgabeihrer URL fragen Komma noch nicht oder ??Programme zu vertauschen Punktich kann direkte Aufgabenso sieht das ausund stellen sich den Schalter vorPost oder die Kasse im Supermarktdie Aufgaben stehen Schlangesolange da eine Aufgabe stehtbearbeite ich die Aufgabe keine Aufgabe mehr darstellt okay fertig keiner ausgehensolange wie deine Aufgabe steht was mache ich hol mir die Aufgabe dieSchlange aus die Aufgabe des Medizinreferenzauf die Aufgabeund ich sagevisuell den Aufgang verpackt ist davon möchte ich Webseite haben und Abgase nach den URLs der Vorkommenund schonSamuelsTrust diese Webseite abund merkt sich auch die gefundenen URLs was sie nicht tut istdas jetzt neue Jobs erzeugt darausjetzt doch reinbastelndas müssten wir noch vernünftig machen ?? über das hinaus Beistrich die URLs einzusammelnsondern ich müsste hier noch neue Jobs erzeugenmuss neues passierenwann erzeugen sie neuen Jobso ?? Komma sofort effizient sein alle die schon mal gefunden worden sind die habe ich abgearbeitetsie nicht noch mal tunund lustigerweise müssen sie auch gar nichts Risse noch mal hinzufügen das hätte man ihm schon machen könnenwenn die gefundene URLsowieso schon in der Liste aller URLsistist ja schon abgearbeitetdann erübrigt sich das wann mach ich mir die Arbeit immer Arbeit mache ich mir nur dann wenn die gefundene URLnoch nicht in der Liste ist zwar so wenn nichtdie Liste wo es ist ja einfach?? Contentsvon?? sonur dann lohnt es sichzwar nicht mehr doppelte Arbeitam Rechner doppelte Arbeit ?? ich gucke nachdie URL die ich gefunden habeunter den Treffernist die schon in der Liste aller URLs sich immerzu von Arbeiterinnen mit Contents fragen Sie daswenn sie nicht drin ist es anders Ausrufezeichenwir sind nicht bishergefunden worden ist nicht in der Liste drin ist okay dann fügen Sie die hinzuund dann merken sich aber auchdass das auch ein Job ist die anzuguckendiese neue URLdas was ihr Zeug ist daraus eine Aufgabe und füge die zur Warteschlangen zuAufgabenBenQAufgabenPunkt wenn duschreiben Sie da jetzt ??ich möchte eine Aufgabe bauenund der Warteschlange für die Aufgaben hinzufügenConstructorAufrufe bauen eine neue Aufgabemit der gefundenenelSemikoloner wird es endlich funktionieren einige ?? an diversen Stellen wird er ?? fusioniertaber im Prinzip ist es die Idee sie programmierenjemandender Fließband arbeitetist die dritte MetapherPostschalterkasseim Supermarkt oderFließbandarbeithier ist das erste Paket auf dem Fließband der Stempel selbst auf das Fließbandund das ist jetzt der Jobvon dem armen Menschender am Fließband stehtbesonders auf dem Fließband auch okaydann hole das abschließend runterund bearbeite es und das witzige ist während meines bearbeitetfühlt man mit Widersachern aus Wiesbaden zweifelsfreiwieder was zu tun?? länger hier bemerken uns einmal Pech überhaupt vorgekommen sind ?? bemerkenswerterwas zu tun istalso dieseGesamtlistewurde es zum Schluss alle gefundenen URLs enthalten und in der Aufgabenlistesteht nur drin welche denn jetzt noch Abzug rasen sindfrage mich ob ich mich traue das Laufen zu lass ich das lieber gar nicht laufen wahrscheinlich sehen sie jetzt schonwarum das nicht funktioniertist jetzt eine andere Person guckt sich an was auf der Webseite stehtund dannsolch die neue Arbeitspaketedie sie wieder aus Band legt fürjeden Link auf der Webseitewas wir daran schief gehendass du das zu viel werden sie erledigen eine Arbeit ?? kriegen sie drei neue Arbeitspaketunternahmen sie neun und so weiterwenn man beschränkteWebsite hat internohne Links nach außen bitte das Reich funktionieren aber wieder Website mit ganz vielen Links nach außen in die weite Welt des auseinander fliegen das ganze das heißt müssen das begrenzen das wir jetzt auch als Vorschuss laufen lasse ?? ändern dass man sofortnoch was einbauendass man nicht zu weit gehtdie typische Lösung istdas man zählt wie weit angeht wie viele Schritte entfernt man sich von seinem Staat sauge ich möchte einen Schritt gehen und weichen zweiten Schritt gehen weich doch im dritten Schritt gehen aber nicht weiterdas wäre ein Limit das man einbauen könnteund ganz raffiniertes rückwärts zu zählen Ausrufezeichendas ist nur zweiimmer ein Schritt gegangen sind selber und darüber aber einsund null Merkmals noch den Bürgern sprechensie runterzählenwie vieleSprünge haben wir gemachtdie Staaten mit der Maximalzahlan Sprüngenund wenn sie nun erreichen sie aufdas wäre ein Hartmann das unter Kontrolle behalten kann auch das rekursiv ausdrücklich rekursiv programmiertwas manwar als ersten Ansatz wahrscheinlich schreiben wird ?? rekursiv ?? mitwirken auch einfach mitzählen wie viel Sprünge habe ich gemacht um irgendwann aufzuhören ohne dass es zu viel wird bemerken und sonstige Sprünge möglich sindKlammer aufund das?? die Aufgaben ?? Fantasie jeder Aufgabehat nicht ?? Informationwelcher Link ausprobiert werden soll welche URL ausprobiert werden soll ?? ihre Aufgabe ?? Punkt Informationwie weit draußen man schon ist wie viele Sprünge man gemacht hatdas wollte ich nennen wie viele Schritte nochdazu vergibt zweiStaaten in dieser Variablen und die nächste Generationhatte nur noch eins und die äußerste Generation hat null und dann Feierabendund auch daspro Partie wiederzugänglichgemacht?? muss es merken für jede Aufgabefür die es Aufgabe manchmal treiben sie seine Aufgabe okaydrei Schritte ?? maximal in die Tiefe gehenganz geändert was ich noch tun soll und sagte der sollte natürlich dann auch haben Kindwie viele Schritte nochroh Punkt bis Punkt wie viele SchritteSchritt sollalso die Aufgabe merkt sich nunmehr gemerkt sich der Link der angeguckt werden soll und er merkt sich wie weit draußen wir sind das war dann auch irgendwann sagen können jetzt ist genugals ich sage beim Staatwir haben drei Inforat dir drei Schritte maximal ?? runter gezählt von ein zunächst mit runter gezähltwissen Sie was Sie hier hinschreiben müssenjetzt alle URLs Sammel-URLsdieser Aufruf und dann kommt hier unten gefundene URLwas muss ich jetzt diese Aufgabe mitgebenoder eine Aufgabeaus der Warteschlangewill die abarbeitenSuche alle Links auf der SeitePosition beim Aufgabe gefundene URL passierensie müsste jetztdie Anzahl der Generationen als verringert sei die Anzahl der Schritte als verringert seinmüssen ungeschickter Weise der Anzahl der Schritte kommen unsere Schritte minus einsminus eins aber wovon sich die eins Arztes habe ich jetzt nicht an der Stellees könnte hiermit übergebenmännliche oben sammle US Aufrufe kann sich das mit übergeben ?? Misses aus der Aufgabe rausholen?? ich neige geradezu etwas Andererwenn ich dieser Funktion sammle URLs dieser Methode sammle URLsfordert die Anzahl mitgeben musste kann ich die Aufgabeübergebenich nur die URLsondern eigentlich bedeutet das ich Gewitter die Aufgabedie Funktion ?? gerade und ich übergebe der ?? die Aufgabeoben Samuelsübergebendie Aufgabeder ICD Anzahl mit drinnen?? bisschen basteln hier die URL muss ich da aus der Aufgabe rausholenPunkt großgeschrieben ?? natürliche Zitterpartieirgendwojetzt können Sie hier runden Fragenvon der Aufgabe?? von der Aufgabe was warwie viele Schritte noch ein weniger?? erzeugen neue Aufgabenam Anfang Büchereien mit wie viele Schritte noch dreiund in den neuen Aufgaben die ich dann erzeugeich noch zwei Schritte daraus entstehen Aufgaben mit noch einen Schritt und so weiterso habe ich das da eingebautdie billig ?? Sammlung URLs ja eigentlich auch?? noch unwillentlich mit Samuels uns jetzt ja sowas wie erledige Aufgabesei so ?? ich das jetzt bei dem NamenSiggi oben ist das ja super abstrakt geschriebenaber eine Warteschlangenaufgabein die Warteschlangestelle ich eine neue Aufgabe rein und dann gehe ich in eine Schleife und die Schleife läuft solange wir fertig sind mit den Aufgabensind immer eine Aufgabe Rausrot aus der Liste und abgearbeitetdiese oben ist super allgemeinist es Sammlung URLssind für mich auch nicht mehr so schön als Namedoch das ganze allgemein den machst doch schon ?? leidige Aufgabe?? soetwas insgesamt umGänsefüßchen obensuper allgemein wird das Drogen Vista nicht mehr das zum Webcrawler gehtdas könnte irgendwas einbilliges Auto gebaut oderPakete verschicktals allgemein formuliert und nur noch diese erledigte Aufgabenmethodeweiß was da jetzt im Detail passiertdas für die Webseite herunterladenund so weiteres fehlte aber noch wasich möchte so lange Aufgabenaufs Band legensich zu weit weg bin in meinerWebsuche Gesichts zu viele Schritte gegangen sind hier fehlt jetzt noch wasichmuss also dafür sorgendass ich irgendwann abbrechen ich erzeugenur dann neue Aufgabenwenn ich noch genügendSchritte übrig habe ?? das muss jetzt vergleichen größerirgendwasnur dannich noch genügend viele übrig habe genügend viele Schritte erzeugt neue Aufgabenich würde sie zu machenwenn ich hiermiteins reingehe ein Schritt nachdann habe ich allerdings eingesammelt das wäre sozusagen ein Schritt dann würde ich keine neuen Aufgaben erzeugen wollen das heißt wie viele Schritte noch wenn das größer ist als ein Stern erzeugtneue Aufgabenwie das jetzt auffassenmüssen uns überlegen ?? zwar definieren was soll das heißen wie viel SchrittLeertaste der tatsächlichmeine kleine Webseite abgegrastwerden meine kleine Websiteich Seite sei diese einer ?? Seite ?? kleine Zeit des ICEbis jetzt komplett abgegrastwerden mich zwarhier einen Dreck Punktauf die schließende Klammersosehensoschnellundgucken was inder Disney ist es tausend vier sind jetzt die Listeder eingesammelten URLstausend Stückso wahrscheinlich ?? mir zu aber die Liste der Aufgaben ist natürlich jetzt leer haben solange ausgeführt bis die Liste der Aufgaben der istso weit zurück ?? ich führe das vielleichtmal vorsie Bambus dann doch noch gehen soll?? während sie das tunist die Oberfläche eingefrorenverlief die Methode die auf den Button Klick reagiertKlick auf den Buttonund solange wir jetzt sind ?? Webseiten einsammeln passiert bestimmterOberflächedas Programmfriert für diese Zeit ein dass es gar nicht nett sein Komma damit gleich nochso wackligsuche ich mal das Fenster zu ziehenund solange wieder gearbeitet wird ist nicht mit Fenster ziehenvielleichtentbeschleunigeich das ganze mal damit es noch klarer zu sehen ist das immer noch Komma wer was passiert ?? Programmkönne man ganz dreist hierbei jeder gefundenen URL auch ?? kleine Ausgabe machenes gibt nämlich im NamensraumSystemDiagnosticsdiba ?? Punkt?? als Methodestatische Methodemit kann sie ihre Lebensversicherungausgeben?? ich geh mal Komma hier diese gefundenen URLaussind wir unten mitlaufen gleichen Debuggerwas alles gefunden worden istBeistrichaufAusgabeauf bastel wichtige Versagen Ausgabe soll sich haben willAusgabe von die Wagenund es müsste man hier die Webseitendie Linksdurchscrollen sehenzu lang ist der durch konsequentesFenster nicht greifenso weit so gutFragewarum nämlich diese Bedingung von dem ich nicht darum mit reinauf der äußersten Webseite auf der äußersten Ebeneso wenn das die letzte Webseite ist in der Hierarchie die ich mir dann anguckedann möchte ich mir diese Links noch merkenaber die nächstenWebseitenauf die verlinken diese Links nicht mehr an Steuern des ?? Richter diese Unterscheidunglinksmerkich mir noch die ich gefunden habeaber ich merke mir nicht mehr das ich noch ansteuereund weiter bearbeite deshalb ineinander verschachteltfällt gerade ein wenn ich hier war tausendUS einsammeln habe ich ja nur hundert Webseiten aufgemachtauf jeder meiner Fantasie Webseiten stehen hier zehn URLsich kann noch einen Schritt weiterdamit das ganze schönlangsam werde sei sie eine Generationeine Ebene einen Schritt weiter schreibt eine vier sein da mache ich wirklich tausend Webseiten auf und finde insgesamtzehn tausend URLshübsch langsam passiertsoviel und müssen Ausgabe Fenster jetzt wiedermelde?? Diagnostics die Bark und so weiter ausgegeben werden welche gefunden werdenPunktund solange nicht sie es aber versuche einem Titelbalken zu ziehen sind ?? bewegt sich nichtund wird fleißig gearbeitetsolange wie gearbeitet wirdist mein Programm eingefrorenes hoffentlich genug zu tun Punkt das?? etwas mehrtausend Webseiten werden an diese winzigen Webseiten werden geladen untersuchtauf links untenlinks wieder angesteuertundfertigsie das ganzeden Leuten ihr Programm anwenden nicht antundas Programm so lange gesperrtbis widerwärtig sind Sowjets bewegte sich wieder sind fertigKomma da weiter arbeitenein großes Problem wie kriegen wir das hin dass ihr Programm bedient ?? bleibt während des einen längeren Job erledigtsie dürfen nicht irgendwas was länger als eine Ahnung oder zwei oder drei hundert Millisekunden dauert es dürfen sie nicht in Summe Accessoires Routine reinschreiben das Programm sonst hängtes fühlt sich nicht allzu gut an das gibtAnrufe beim Supportprogrammesreagiert zweitenserledigen wir gleich mit auf einen Schlag gleichzeitigerledigen wir es sehr viel mehr Rechenleistung haben wir über den Taskmanager aufgemachtauf diesemdoch etwas mager ausgestattetenTabletttut Windows so als ob wir vier Kerne hätten also wenn ich einen Rechner hätten sondern sozusagen vier Rechner auf dem einzubetten der sind zwei Kerne diese aber jeder für sich nochmals ich bisschen aufspalten kann Hyperthreadingdes Vektor vom Betriebsystem aus als ob er tatsächlich vier Sachen parallel machen könnenwas es mit der Leistunggezeichnet wird und welche großen Rechner haben für Zuhause dann können inzwischen auch ?? lockerzwanzig Sachen parallel gemacht werden das möchte man außerdem in ihr Programm zu jeder Zeit an einer Stelle istbenutzen sie nur ein so zu viele der Leistungdie sie eigentlich zu Verfügung habendas möchte man nicht möchte das Programm ihre Sachen parallel tun können das was du zum blockierendes Papieren von eben auch los möchten das Programm gleichzeitig die Oberfläche behandelt undrechnetund du möchtest es ganz viele Sachen parallel rechnetum die ganzen Kerne auszunutzenund die übliche Lösung des ThreadsPunkt jetzt zum zweiten Teil an ?? wie würde ich diese Aufgaben jetzt auf mehrere Arbeiter verteilenautomatisch auf mehrere Arbeiter verteilenum dieRechenleistung ausnutzen wie geht's jetzt weniger um die Rechenleistungwar liege tatsächlich darum was aus dem Netz zu undes auch sinnvoll dass sie mehrere Anfragen gleichzeitig startenwenn sie mehrere verschiedene Server ansprechenjeder von denen reagiert unabhängig voneinanderdass es sinnvoll dass sie parallel ansprechendass es hilfreich um die Leistung zu steigernBeistrich was es an Felswir bauen ihren Faktortatsächlichmehrere ThreadsArbeiter bitte sowas verteilt richtig übersetzt ja Fadenzweitwichtig das in den mit dem Schreiben heutzutage sieht man aus mit Zederbedrohungdas was anderesdurcheinanderbringe Thread mit dem Verfahrennicht der Security ThreadBedrohung solltemit Date erfahren darum geht es jetztals Gesicht als Arbeiter vorstellendas Betriebsystem verteilt ihre Arbeiter automatischauf die Kern sie können sogar sagen ob ich gern die laufen sollen aber damit wirklich heikel normalerweise verlassen Sie sich drauf dass das Betriebssystem die verteiltich möchte zum Beispiel vierArbeiter habenmüsse ?? ausprobieren was ist sinnvollund die lege ich mir einfach in einem RyanAndré von der Sorte Wert?? aus NewswirdnämlichSystemum ans Herz lege ich mir in einem Array an Komma vier Stückvier müsste man ausprobieren je nach Rechnerje nach Aufgabegibt ?? andere sinnvolle Zahlennicht ausprobieren man müsse tatsächlich einmal sich überlegendurchmessendann ein Programmierenwie viele Threads denn erzeugt werden soll?? muss ich jetzt anlegenwas es wieder ganz normalviel Scharprogrammierungwas erwarten Sie was es als nächstes passiert und diese vier Threads anzulegenineiner for-Schleife alsovor ??in die gleich null ?? solches einfach Threadslängstso viele Felswirklich konstruierenwie wir eben anders geschaffen haben wir mit vier Einträge geschaffen aber noch nicht ?? Viertels erzeugtdas tun wir jetzt als ich fürderhin so viel Eintrag?? Threads vonhieden völlig mit einem normalen Fahrradund da muss man jetztsehen Sie auch??verzagenwie er starten sollte ?? was reinBeistrich muss wissen was er tun soll ist es eine Sache die höher einstellendenSilbersachen ansagendann stelle noch einenfür den Thread mit der Nummer jedenWollarbeitermit der Nummer Istellen wir noch ein dass das ein Weg Fortschritt ister läuft im Hintergrundim Hintergrund laufen heißt das Programm beendetdass dieser Thread einfach stiertohne wenn und aberund unser Programm nichtweiter offen hält?? seinen Respekt ?? ist gleich two soll im Hintergrund laufende kann einfach beendet werdenund dann sogar noch Staatenschon in der Sonne zu viel Leerschritt von den vieren jetztder soll bitte auch bestattet werden?? wirklich vier Maschinchenrobotersowohl für Roboterden sie sagen ?? läuft im Hintergrunddas Programm wendet sich Captain ?? mit Jauch unddes Engagements als arbeitendes mache jetzt allesanders machen ?? des Reiches auf Ackerstraße construction sobald das Programmanfing zu laufen ?? Faktor von Nintendo aufgerufen wird gibt es diese vier Arbeiterdir sowas tun müssen das übrigens gleich nochich ?? ?? ?? Rosso auf Philosophiesagen bevor sich jemand beschwert dass dasantikesheute gibt es in sich ?? eigentlichTasks und es gibt so schöne Sachen ?? Klammer zuBeistrichheutegibt es etwas das nennt sich Taskund es gibt neue Schlüsselwörterdie nennen sich Racing Care sinnvoll aus und wähltkönnte man alles mitbenutzenführe ich es aber an dieser Stelle nicht vor weil das ziemlich sie scharfspezifischesGeschwätz Defense in allen üblichen Systemauf dem Markt aber guckenin gewisser Weise auch in Javascriptin C plus plusauch seit einigen Jahrengibt es Threadsbereits verstanden haben können Sie mit den ganzen üblichen System umgeben ?? die neuerenIdeen wie Microsoft eingebaut hat in dort nett und sie schaffen es in der Welt insbesonderedie neuen Ideen sind vielleicht noch bisschen exotisch die ganze nicht überall einsetzen ?? Center nichts davon und man muss erst jetzt wirklich verstanden habe vom mit den neueren Arbeiten darf denke ich das ?? veranstaltet undeine philosophische Randbemerkung falls sich jemand wundert mich das Artikel ?? Leerzeichen Konzept fällt hier benutzeBeistrich aber doch vor jeder Roboter kriecht hier ein Jobeine Methodedanach aufgerufen wirdPunkt Deutsch arbeiteund ihr sportliches einfach Arbeitervereinwir haben vier ?? Roboterund deren Job istjederfür sich jede Roboter für sich für diese MethodeArbeiter auswenn er fertig damit ist okaydann endetdie Aufgabe des Arbeitersund es dann verschwunden oder er verschwindetwenn das Programm beendet wird wie würden wir das jetzt sinnvollerweisehinkriegen könnenwenn sie veranstaltenvon der Logik herich hab vier Arbeiter ziehen mich etwas zu tun aufgeben kann in Form dieser Methodediese Methode scheint ständig durchlaufen zu müssen weil ich es heute meine Arbeiter ja schon ein Programmstartwurde der Knopf geklickt wird ?? möchte ich sagen ?? jetzt aber bittedie URLs abgeblasenhabe schon eine Idee was wird man jetztarbeite tunalso Benutzen ist die Warteschlange das passiert jetzt interessanterweisealles vollautomatischdurch die Warteschlangeund zwarich hatte es mal aus unseren Computerprogrammcodeist eine AufgabeFragezeichen ist mindestens eine Aufgabe der Warteschlange weil ich natürlichdann hole ich diese Aufgabeund arbeite die abdas macht jeder von unseren vier Threadsund vier Verwalterfehlt aber noch was WesentlichesArbeit die abals irrsinnig fertig was Muster jetzt noch passierenraffiniertereine EndlosschleifeWaldschulzum Beispieloder ein vor Semikolon Semikolonbald Schuhohne Ende gucke nach ?? ist was in der Warteschlangewas in der Warteschlange istabholen bearbeitenund ?? nach etwas in der Warteschlange ?? und so weiter und so weiterbis das Programm beendet ist so sieht das aus und dann ist die Verteilung vollautomatischin der eine Thread was abgeholt hat dann der nächste Schritt das nächste abholen soweit es wird vollautomatischverteilt auf diese Viertelsist es ein bisschenein paar Maßnahmen noch einbauen es geht nicht mit dieser Jugendliebe bisher hattengebrochen nämlich jetzt eine Queue die mit mehreren Threads umgehen kann das etwas raffinierterdie Show ist intern etwas anders gebautdamit sie mit mir Threads umgehen kann und sie heißt dann Konkurrent John ?? und steht an der NamensraumSystems College PunktKonkurrenz neben häufig nicht im Deutschen der Konkurrenzauch in gewisser Weise auch Konkurrent Wichmann agiert nebeneinanderwas er gemeint es ist nicht Wettbewerbs sondernneben häufig gleichzeitigparallelmit laufendKalziumund den wollte ich auch die Kompendiumalso eine andere Sorte anWarteschlange die jetzt mit mehreren Threads umgehen kanndie normale ?? kann das auch sie müssen bisschen mehr dazu schreiben noch bei Computergeht das einfach so der eine Satz kann was hinstellenund in das eine Ende und dadurch was abholen und die kommt sich gegenseitig in die QuereKomma gucken ?? Beistrich sondern genaudie Jugend sich jetzt ändernsie sowieso Ges ob sodas Konto rausnehmen sowieso ?? Button Klick passiert istwir stelleneine Aufgabe in die Warteschlange ist das einzige was eigentlich passiert eine Aufgabe kommt in die Warteschlangeund unsere vier Threads werden die es automatischder erste Thread für diese Aufgabe erwischt ?? die Arbeitenund mehrere neue Aufgaben erzeugenund dann werden die anderen Threads anfange zu arbeiten und sie sieht es gar nichts relevanten Klick außer dass ich sage eine einzige Aufgabe in die Warteschlange nämlich die Seite nullHTMLvier ab grasen bis zur Ebene vierso ist eine Aufgabe der Warteschlange holen die das bei der Konkurrenz schon etwas anders ?? AufgabeAufgabendas war unsere Warteschlange weiterhin designen sie nicht liegt über sie wissen nicht was drin istund wenn sie nach der Anzahl Fragendas ?? mir nach der Ansage fragt es auch gefährlich vier Leute greifengleichzeitig zuwas es jetzt die Anzahl dass es ständig flugs ihre mit der Ansatz auch zu gefährlichdessen gibt es folgendeses heißtzweiDequeue versuche jemanden aus der Schlange zu holenist sie nach der Anzahl zu Fragen der Leute in der Schlange stehenwenn sie mit mehreren trauert aber gleichzeitig zugreifen sie versuchen einfach immer noch ?? Klammer zukommt noch etwas Neueswas wir jetzt jeglichen ist eine Variable die ausgegeben wird es steht ein Hautkingeine Aufgabesuchenund die kommtrausaus dem runden Klammern kommt plötzlich eine Variable rausdas hatte ich nie so groß fertig erzählt es kam irgendwo vor in den Videosauf nicht sonderlich völlig irritierend istohne dieses Outfit zu bedeuten sie übergeben wasan dieser Methode Tragik Diktionmit dem Auto vor Christus zurückSemikolonLegionliefert ihm was geht es variabel zurückschreibt was keingenau umgekehrtPunkt sowas warübergebensie was an die Methode dar Beistrichund wenn ein Autor vorsteht kriegen sie wasdie variable Aufgabe streitig zu versucht jemand abzuholen aus der SchlangeAufgabe abzuholen aus der Schlange und schreibtwenn's funktioniert hat die Aufgabe hier die Royal Aufgabe reinjetzt fehlt die Information ausgeklappt hat oder nicht was erwarten Sie bitte diese Informationübermitteltob irgendwas abgeholt worden ist aus der Schlange wie wird die Situation ??Ringseinbußerückt es in Singapur zur weiteren Merkmal sind ?? Duschen Variable ?? wenn das funktioniert hat jemanden abzuholeneines Prozessesetwas aus der Warteschlange Aktionliefert dreiDequeueein Tod zurückBeistrich dass meine Variablenist auch weitersosehr lustig benannt lasse ?? alsoso funktionell das bessere jetzt zwei Arten etwas zurückzugeben aus dieser Methode drei Dequeuesie liefert wahr oder falschin der Demo funktioniert hat oder nichtetwas Aktion aus der Warteschlange und sie musste auch noch das Ding oder zumindest eine Referenz auf das Ding zurück liefern was sie abgeholt hat deshalb das Auto noch habenund ja ihr Vorschlagsie könnte ja null zurück liefern mal zurück liefern die null Referenz zurück liefernwenn sie nicht geschafft etwas abzuholen?? es könnte die null Referenz in der Warteschlange gestanden habenund ?? Komma dass ich auseinanderhaltendeshalb gibt's ja ausdrücklich an rutschen wir zurück zur ?? des Dequeue sieht jetzt bei dieser Art ein Warteschlange etwas raffinierter aus können probierenetwas abzuholen aus der Warteschlange?? Glück oder nicht Glück wenn sie Glück haben wissen Sie auf jeden Fallin Aufgabesteht jetzt die Referenzauf eine Aufgabeund mit der können wir weiter arbeitendas die eben erledigte Aufgabe ÜberraschungsshowAufgabe nämlich genau diese Aufgabewenn Arbeit da ist und dass sichdazu schonist Arbeit daaber nicht ?? können und erledigen sodas ?? Corinna Endlosschleifein zwanzigStunden am Tag sieben Tage die Woche Komma in der Endlosschleifeeine Aufgabe abholen aus der Warteschlangewenn es das gelungen isterledigt über die Aufgaben und die Verteilung auf die verschiedenen Threads ergibt sich automatischjeder Threads holt sich immereine Aufgabeaus der Warteschlangees wohl sichtlich zwei Threads dieselbe Aufgabe aus der Warteschlangewenn ein Thread gerade Nix hatokaydann fängt der vorn an und guckt wieder nach ?? was hat denn sie setzte sich ständig rotierenden Kuchen noch Arbeit da es immer noch folgendes dazu schreiben wenn keine Arbeit da istLing bei den Threadkurz schlafenkann der Prozessor solange was anders sinnvolles machen oder eben auch schlafengehen und Batteriespares gibt von der Klasse Threadeine statische Methode denen sich schrieb?? hundert Millisekundenseegibt ganze Zahlen zu sagen ?? Sekunde classic und soll sich dann ?? in der Prozessor kann solange was anders tun sie noch andere Programme die auf dem Rechner laufenoder wir haben viel mehr Stress als wir Kerne haben die können dann so lange laufenwir das Betriebsystem sieht das ganz viele Threads am Schlafen sind es tatsächlich auch Teile des Prozessorsjetzt schlafenversetzen und auf diese Art Stromspar?? das ist freundliche Gestedes er nicht sofort wieder nachguckenauf Arbeit da es gerade war keine Arbeiter gekommen sofort wieder nach ob Arbeitsleistungenbilligendgeschlafenmit dem Schritt zieht ein hundert Millisekunden ist schon freundlicher als ohnedass es aber noch nicht der Weisheitletzter Schlussdieses schlafen von hundert Millisekunden bedeutet ja dass man im Zweifelsfall hundert Sekundenwarten muss bis tatsächlich meine Aufgabe angefangen wird in alle Threads gerade am schlafen sind und es bedeutet auchdaskaufen ganz sicher keine Aufgabe vorhanden istjeder Thread alle hundert Millisekunden aufwachtund nachgucken ob ich doch was zu tun istdas Kind jährlich bessertypische Weg wird sein das man immer eine Aufgabeankommtaus einem Pool an Schwerts ein rausfliegtvon dem diese Aufgabe aufs Auge drücktKomma sei sie nicht die Atmen ursprünglich mit Verzögerung geht deshalbaus taktischen Gründen das ist man lieber so wie es jetzt den habe Bestellungsformularfür Roboter jedoch ?? oder guckt in einer Endlosschleifeist das zu tunwas zu tun ist oder was man sonst richte sich hundert neunzig und schlafen dass es wohl am einfachsten zu verstehenund funktioniert auchfast eine Sache muss man noch ändern nämlich man sich anguckt welche Aufgabe erledigt werden solldann ist das leider noch auf eine fiese Art falschnämlichjeder Threadkann unabhängig von den anderen diese Methode aufrufen erledigte Aufgabeaber in dieser Methode drinnenwirdaufdie Liste an URLs zurückgreifenist da was trennenwenn das nicht drin ist was ich suche für bis zudass es gefährliches kann nämlich seindas es erst nicht drin istund dass sie deshalb in die Schweifklammer herein gehe von dem ?? das aber in dem Moment ein anderer Threadgenau diese URL reinschreibt in die Listeund ich hatte noch mal rein dass es gefährlichdas muss ich verhinderndas ist nicht offensichtlich falsch ?? auch keine roten Kringelso logisch falschund das fieseste ist das Wetter selten passierenwie gesagt es könnte sein?? dieses Contents sagt ich sehe die URL nicht in der Listeund in dem Moment?? Standortedazwischen schreibt genau die URL reinund hier füge ich noch mal hinzudas wäre nicht im Sinne des Erfindersdes könnte sogar sein das ich diese Methoden ja wenn sie parallel aufgerufen werden ein anderer Thread ruft in demselben Moment eher auf zum Beispieldass die Methodensich beißendas ganze sei ein Friedhof Contents auf und parallel dazu ruft ein anderer Threaded auf was wird passieren wenn die beiden Methoden sich behagenhöchstwahrscheinlichschon?? Woche seinen Mittel um das zu verhindern auf einer selten passieren wird es wahrscheinlich selten passierenwürde sich nicht es muss verhindert werdenund dafür gibt es ein weiteres Schlüsselwortdas nennt sich Lokund zwar schreibe ich jetzt um diesen gefährlichen Bereich hierein Blockwas Reinion Klammer zuund klammere diesen gefährdeten Bereich ein indem auf die Liste zugegriffen wirdso sieht das ausund dieses LokSchlossschließensoll dafür sorgen dass immer nur eine Thread zur selben Zeitin diesem Doktor rein geht es darf nur ein Threaddieses Lok betretenund eben nur ein Thread nachguckenist die URL drinnenund falls nicht fügte sie hinzudann habe ich kein Problem damit dass sie sie visuellvon zwei Threads gleichzeitigoder noch mehr Threads gleichzeitig beackert wirddieses Lottchen braucht irgendein Objekt mit dem sie sich das mehrdas Gegenüberaber noch eineInstanz von aufschlägtoder auch groß geschriebenKlasse auseinem Satz von Objektnennen wir das malPunktfürURLshat es würde irgend ein Objekt Punkt sie nicht ?? dort Instanz vom wenn du nämlich könntedie Liste neben URLswar sie es war ganz offensichtlich in den ?? schließlich ausdrücklich ein eigenes Objekt anlegen dafür dieses Objekt ist nur dafür da dass sich die Laufzeitumgebunghinter den Kulissenmerken kann ob gerade ein Thread hier untenin Block istnur sieht das dann ausder Bereich innerhalb von Lok kann nur von einem einzigenThread betreten werden alle anderen hängen ihr vor dem Block da oben und wartenund damit ist sichergestelltdas hier diese Liste von wegenwas drinnen füge ich hinzu dass das nur von einem Thread zur selben Zeit passieren kann und kein anderer dazwischen Beistrich jetztist das Programm soweit fertig und willkommeneslaufen lassen jetzt ist es umgestrickt auf mehrere Threadsneunzehnjetzt kommt der spannende Momenttrödeln die Webseiten ein und die Oberflächeist lebendig gebliebenKomma ganz dreist Programm abwürgen ?? mich auf diesen klickenund es endet auch wirklich war das Hintergrund Schweiz sind ohne dass das Programm noch hängen noch vorführen?? kommentierte die Zahlen mal ausder fatz eben keine Hintergrund ThreadsRoute statt Kommavirtuelle Webseiten einig versuchen zu schließenund man sieht auchdas ?? kannst das weiterund ich musste sie ausdrücklichin die Bagger abbrechen?? das ist der Sinn von demes weg Punkt hier können sowieso nochein paar Sachen einstellenbei den Threadskönnen nämlichzum BeispielSagenskomiteewie wichtigsind die verschiedenenThreads die wir haben alle von derselben?? heute sinnvollerweiseum die soll man nicht so wahnsinnig wichtig sein Opus das heißt der Prozessorbeziehungsweise das Betriebssystemsoll Fenster anfassenwenn es sonst nicht wirklich irgendwas brennendesvorhatund wir können den Fetzennamengebendas istzum Beispiel im Debuggerweißwie man da gerade vor sich hatPunkt wird ihmeinfache Zeichenkettesah Komma SwitchKommadiedas könnte man jetzt manchmalnutzen ihr unten?? wo ichausgebewelche URL gefunden ist eine ?? ?? ausgeben welcher Fett sie gefunden hat?? es gibt nämlich in der Klasse tritt nundiestatische Prophetiecurrentfälltder Thread der jetzt gerade an dieser Stelle angekommen istund den kann natürlich ?? seinenNamen fragenPunkt hübsch Doppelpunkt LeerzeichenURL das heißt wir sehen jetzt gleich in der Listeim Ausgabefensterimmer mit Nummer soundsoviel Doppelpunktund welche URLgefunden hat und das muss wild durcheinander geheneinAuge sieht ?? nur mit eins null acht einssieben hundert sechs hundert und so weiter die diversen Webseitenalle hübsch durcheinanderund hier der Oberfläche ist doch alles lebendigkönnt überhaupt Komma?? Punkt setzt dannsoArbeitnehmer gerade mittendrin an ?? sehen wir in welchem frische Grade sind ??irgendwie so verschiedene Threads umschalten Münder Rheuma kann auch ein mir die anderenFensterthreadswackeln oder sogar anguckenwas alles Alfred läuftdie vier Stück lieber selbstgestattet haben der Hauptfeldmit der Bedienoberflächeder Teilnehmer bisher ausschließlich gearbeitet haben und sieht auch schon aus um Partnerindie einfach mal so angelegt werden ohne dass wir ganz viel davon erfahrenund lassen ihn weiterlaufendessen Geschichte etwas schön wenn das jetzt was im Ausgabefensterläuft auch wirklich offiziellfür den Endanwenderim Programm sichtbar istBeistrich doch malpflege mal eine Textbox anauf der Oberflächeund schreibe das ganze in eine Textbox ??eine Textbox ist zwar eigentlich dazu daeinige haben da ein machtbisschen fauldie Textbox kann nämlich schön vielwas ich gut gebrauchen kann mir nämlich?? wenn zum Beispiel das Text automatischgebrochen wirdPunkt ich kann der Textboxauch folgendes sagen scrollbar ViewerArtikels Komma warbelegt dierichtig von selbst auchein Scrollbalken?? wie man ihn schon angedeutetist es das richtige Oberflächenelementdafür aber deutlich anTextbox heißt dasdann immer Programm die Variable dafür als Textboxjetzt möchte man ja annehmendass man ihr einfach zu warten URL gefunden worden ist sagen kann?? Textboxnehmen den Text den du da hastund füge diegefundene URL hinzuso wäre das ja logisch ich finde neue URLmit der ?? Saint Liane Text von der Textbox anLeider ist die Welt nicht so einfachich starte das hier malZack kriege nämlich eineinvalid Abrechnungsschritteaufrufen ?? wet kann nicht auf diesem Weg zugreifen dass ich das Objekt im Besitz eines anderen Threads befindetdas muss man das verstehenwas das heißen soll es folgendes man darf nur aus dem Hauptfeldauf die Oberfläche zugreifendamit er nicht durcheinander gehtdiese Methode hier erledigte Aufgabeläuft ja man aber das wirdnicht in dem Hauptfeldund das gibt was auf die Finger das dafür nicht einfach so tunKomma muss das wissen raffinierter machenund zwar gibt es einen Dispatcherdas ist immer so will das Maschinchen was die Ereignisse verteiltin meinem Programmbitte den Dispatcherbeginnen Wokeiner Mahlzeit findetetwas zu tunund zwar eine neue ?? Section auszuführenund worin besteht diese EchsenSemikolon dahinterdie sächsischen bekommt ein Lambda-Ausdruckeine Funktion jetzt dienichts nimmt wäre Klammer zuwas soll sie tunsie soll das tun was wir ähm vorhattendie gefundene URLText ?? hängen stark davon auswas ist da reinund immer noch das Semikolon wegso sieht das aus ?? verteilt das ?? auf mehrere Zeilen scannen kann ?? wieder erkennenSectiondann kommt der Lambda-Ausdruckund dann gehen zwei runde Klammer zuwieder zusoalso ich bitte den Dispatcherstatische Methoden beginnen Punktbitte mal im HauptfeldfolgendeAktion auszuführenund die Aktion ist was er samt Ausdruck stehtnichts zu nehmenunddie gefundene URL an Textbox anzuhängenjetzt müsste man tatsächlichin der Oberfläche sehen was rauskommt was vonSpannungokay hierkommen unseregesammeltenURLsnicht nurim Ausgabefenstervon Visual Studiosondern auch in unserer allmählichwärmegefülltenTextbox jaund das Programmbleibt lebendig wie man sieht ich kannhin und her scrollenohne Probleme ich kann das Fenster vergrößern verkleinernjetzt lediglich das in der Oberfläche auch was passiertKommadas wäre der Webcrawlerlässt es im Laufe noch ein Körnchen Salzaufgefallen?? ich großartigaberein nicht ganz schönwenn ich eine Webseite über mehrere Wege erreichen kann und ich finde erst den langen Weg über viele Schrittedann wir die Webseite nicht ordentlich in die Tiefe weiter abgegrastzuwählendenWebseiteerstmitvielen Schrittengefundenaber spätermit weniger Schrittenbildendiesetiefer weiterverfolgenund nicht wegen der hohen Zahl der Schritte am Anfangkann ich tiefer nachguckendas wäre ein prinzipielles Problemchenmuss man sich noch überlegen muss man es angehtundnicht ganz so schön es ?? schon gesagtbis fett Sleepkönnte auch noch schöner machen aber so wie das funktionieren