Scrapper-Konkurrent

Barbara Streisand
Freigeben: 2024-11-06 15:21:03
Original
929 Leute haben es durchsucht

Scrapper Concorrente

Programmziel

Greifen Sie gleichzeitig auf Webseiten zu, um den Titel jeder Seite zu extrahieren und diese Titel im Terminal anzuzeigen. Dies geschieht mithilfe der Parallelität in Go, die Ihnen den gleichzeitigen Zugriff auf mehrere Seiten ermöglicht und so Zeit spart.

Erläuterung des Kodex

Verwendete Pakete

import (
    "fmt"
    "net/http"
    "sync"
    "github.com/PuerkitoBio/goquery"
)
Nach dem Login kopieren

fetchTitle-Funktion

Diese Rolle ist verantwortlich für:

  • Zugriff auf eine Webseite (URL)
  • Seitentitel extrahieren
  • Übertragen Sie das Ergebnis auf einen Kanal
func fetchTitle(url string, wg *sync.WaitGroup, results chan<- string) {
    defer wg.Done() // Marca a goroutine como concluída no WaitGroup
Nach dem Login kopieren

Funktionsparameter:

  • URL-Zeichenfolge: Stellt die Adresse der Webseite (URL) dar, auf die wir zugreifen, um den Titel zu erhalten
  • wg *sync.WaitGroup: Zeiger auf eine WaitGroup, die wir verwenden, um den Abschluss aller gleichzeitig laufenden Aufgaben (Goroutinen) zu synchronisieren. Das * zeigt an, dass wir eine „Adresse“ an WaitGroup übergeben und keine Kopie davon.
  • Ergebnisse chan<- string: Dies ist ein Einwegkanal, der es Ihnen ermöglicht, Strings an einen anderen Teil des Programms zu senden. Es wird verwendet, um Ergebnisse (Titel oder Fehlermeldungen) an die Hauptfunktion zu übergeben

Die Zeile „defer wg.Done()“ weist das Programm an, diese Aufgabe (Goroutine) als abgeschlossen zu markieren, wenn die fetchTitle-Funktion beendet ist. Dies ist wichtig, damit main weiß, wann alle Aufgaben erledigt sind.

HTTP-Anfrage


req, err := http.Get(url)
if err != nil {
Ergebnisse <- fmt.Sprintf("Fehler beim Zugriff auf %s: %v", url, err)
zurück
}
defer req.Body.Close()

  • http.Get(url): Diese Zeile stellt eine HTTP GET-Anfrage an die URL. Das bedeutet, dass wir auf die Seite zugreifen und den Server nach ihrem Inhalt fragen.
  • err != nil: Hier prüfen wir, ob beim Zugriff auf die Seite ein Fehler aufgetreten ist (z. B. wenn die Seite nicht existiert oder der Server nicht antwortet). Im Fehlerfall senden wir eine Nachricht an den Ergebniskanal und beenden die Funktion mit return.
  • defer req.Body.Close(): Dies stellt sicher, dass wir, nachdem wir mit der Verwendung des Seiteninhalts fertig sind, den für die Speicherung zugewiesenen Speicher freigeben.

Statusprüfung


wenn req.StatusCode != 200 {
Ergebnisse <- fmt.Sprintf("Fehler beim Zugriff auf %s: Status %d %s", url, req.StatusCode, req.Status)
zurück
}

  • req.StatusCode != 200: Wir prüfen, ob der Server mit dem Code 200 OK geantwortet hat (zeigt Erfolg an). Wenn es nicht 200 ist, bedeutet das, dass die Seite nicht richtig geladen wurde. Anschließend senden wir eine Fehlermeldung an den Ergebniskanal und beenden die Funktion.

Laden und Suchen von Titeln


doc, err := goquery.NewDocumentFromReader(req.Body)
if err != nil {
Ergebnisse <- fmt.Sprintf("Fehler beim Laden des Dokuments von %s: %v", url, err)
zurück
}
title := doc.Find("title").Text()
Ergebnisse <- fmt.Sprintf("Titel von %s: %s", URL, Titel)
}

  • goquery.NewDocumentFromReader(req.Body): Wir laden den HTML-Inhalt der Seite (bereitgestellt durch req.Body) in goquery, wodurch Sie durch bestimmte Teile des HTML navigieren und diese durchsuchen können.
  • doc.Find("title").Text(): Wir suchen nach dem Tag im HTML der Seite und holen Sie sich den darin enthaltenen Text (d. h. den Titel). </pre> <li> <strong>results <- fmt.Sprintf("Título de %s: %s", url, title)</strong>: Wir senden den extrahierten Titel an den Ergebniskanal, wo er später gelesen wird.</li> <h2> Hauptfunktion </h2> <p>Die Hauptfunktion ist die Hauptfunktion, die das Programm konfiguriert und steuert.</p> <p><br> func main() {<br> URLs := []string{<br> „http://olos.novagne.com.br/Olos/login.aspx?logout=true“,<br> "http://sistema.novagne.com.br/novagne/",<br> }<br> </p> <ul> <li> <strong>urls := []string{...}</strong>: Wir definieren eine Liste von URLs, die wir verarbeiten möchten. Jede URL wird an eine Goroutine übergeben, die den Seitentitel extrahiert.</li> </ul> <h2> WaitGroup- und Kanalkonfiguration </h2> <p><br> var wg sync.WaitGroup<br> results := make(chan string, len(urls)) // Kanal zum Speichern der Ergebnisse<br> </p> <ul> <li> <strong>var wg sync.WaitGroup</strong>: Wir erstellen eine neue Instanz von WaitGroup, die die Anzahl der Goroutinen steuert und sicherstellt, dass sie alle abgeschlossen werden, bevor das Programm endet.</li> <li> <strong>results := make(chan string, len(urls))</strong>: Wir erstellen einen Ergebniskanal mit einer Kapazität, die der Anzahl der URLs entspricht. Dieser Kanal speichert Nachrichten mit Titeln oder Fehlern.</li> </ul> <h2> Heimat der Goroutinen </h2> <p><br> für _, URL := Bereichs-URLs {<br> wg.Add(1)<br> Gehen Sie fetchTitle(url, &wg, results)<br> }<br> </p> <ul> <li> <strong>for _, url := range urls</strong>: Hier durchlaufen wir jede URL in der Liste.</li> <li> <strong>wg.Add(1)</strong>: Für jede URL erhöhen wir den WaitGroup-Zähler, um anzuzeigen, dass eine neue Aufgabe (Goroutine) gestartet wird.</li> <li> <strong>go fetchTitle(url, &wg, results)</strong>: Wir rufen fetchTitle als <strong>Goroutine</strong> für jede URL auf, das heißt, wir lassen sie parallel zu den anderen laufen.</li> </ul> <h2> Warten und Ergebnisse anzeigen </h2> <p><br> wg.Wait()<br> schließen(Ergebnisse)<br> </p> <hr> <p>REPO: https://github.com/ionnss/Scrapper-GoRoutine</p> <hr> <p>Ionen,</p> <p>ein weiterer Tag der Erde</p> <p>Das obige ist der detaillierte Inhalt vonScrapper-Konkurrent. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!</p> </div> </div> <div style="height: 25px;"> <div style="display: inline-flex;float: right; color:#333333;">Quelle:dev.to</div> </div> <div class="wzconOtherwz"> <a href="http://www.php.cn/de/faq/1796672826.html" title="Von C# bis Go: AES- und Base64-Kodierungskompatibilität erreichen"> <span>Vorheriger Artikel:Von C# bis Go: AES- und Base64-Kodierungskompatibilität erreichen</span> </a> <a href="http://www.php.cn/de/faq/1796672838.html" title="Wie verkette ich Strings in Go-Vorlagen effizient?"> <span>Nächster Artikel:Wie verkette ich Strings in Go-Vorlagen effizient?</span> </a> </div> <div class="wzconShengming"> <div class="bzsmdiv">Erklärung dieser Website</div> <div>Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn</div> </div> <div class="wwads-cn wwads-horizontal" data-id="156" style="max-width:955px"></div> <div class="wzconZzwz"> <div class="wzconZzwztitle">Neueste Artikel des Autors</div> <ul> </ul> </div> <div class="wzconZzwz"> <div class="wzconZzwztitle">Aktuelle Ausgaben</div> <div class="wdsyContent"> <div class="wdsyConDiv flexRow wdsyConDiv1"> <div class="wdcdContent flexColumn"> <a href="http://www.php.cn/de/wenda/176411.html" target="_blank" title="function_exists() kann die benutzerdefinierte Funktion nicht ermitteln" class="wdcdcTitle">function_exists() kann die benutzerdefinierte Funktion nicht ermitteln</a> <a href="http://www.php.cn/de/wenda/176411.html" class="wdcdcCons">Funktionstest () {Verwendung der Verwendung durch -Durch -Durch -Durch -Durch -Durch -Durc...</a> <div class="wdcdcInfo flexRow"> <div class="wdcdcileft"> <span class="wdcdciSpan"> Aus 2024-04-29 11:01:01</span> </div> <div class="wdcdciright flexRow"> <div class="wdcdcirdz flexRow ira"> <b class="wdcdcirdzi"></b>0 </div> <div class="wdcdcirpl flexRow ira"><b class="wdcdcirpli"></b>2</div> <div class="wdcdcirwatch flexRow ira"><b class="wdcdcirwatchi"></b>1770</div> </div> </div> </div> </div> <div class="wdsyConLine wdsyConLine2"></div> <div class="wdsyConDiv flexRow wdsyConDiv1"> <div class="wdcdContent flexColumn"> <a href="http://www.php.cn/de/wenda/176410.html" target="_blank" title="So zeigen Sie die mobile Version von Google Chrome an" class="wdcdcTitle">So zeigen Sie die mobile Version von Google Chrome an</a> <a href="http://www.php.cn/de/wenda/176410.html" class="wdcdcCons">Hallo Lehrer, wie kann ich Google Chrome in eine mobile Version umwandeln?</a> <div class="wdcdcInfo flexRow"> <div class="wdcdcileft"> <span class="wdcdciSpan"> Aus 2024-04-23 00:22:19</span> </div> <div class="wdcdciright flexRow"> <div class="wdcdcirdz flexRow ira"> <b class="wdcdcirdzi"></b>0 </div> <div class="wdcdcirpl flexRow ira"><b class="wdcdcirpli"></b>10</div> <div class="wdcdcirwatch flexRow ira"><b class="wdcdcirwatchi"></b>1906</div> </div> </div> </div> </div> <div class="wdsyConLine wdsyConLine2"></div> <div class="wdsyConDiv flexRow wdsyConDiv1"> <div class="wdcdContent flexColumn"> <a href="http://www.php.cn/de/wenda/176407.html" target="_blank" title="Das untergeordnete Fenster bedient das übergeordnete Fenster, aber die Ausgabe antwortet nicht." class="wdcdcTitle">Das untergeordnete Fenster bedient das übergeordnete Fenster, aber die Ausgabe antwortet nicht.</a> <a href="http://www.php.cn/de/wenda/176407.html" class="wdcdcCons">Die ersten beiden Sätze sind ausführbar, der letzte Satz jedoch nicht.</a> <div class="wdcdcInfo flexRow"> <div class="wdcdcileft"> <span class="wdcdciSpan"> Aus 2024-04-19 15:37:47</span> </div> <div class="wdcdciright flexRow"> <div class="wdcdcirdz flexRow ira"> <b class="wdcdcirdzi"></b>0 </div> <div class="wdcdcirpl flexRow ira"><b class="wdcdcirpli"></b>1</div> <div class="wdcdcirwatch flexRow ira"><b class="wdcdcirwatchi"></b>1625</div> </div> </div> </div> </div> <div class="wdsyConLine wdsyConLine2"></div> <div class="wdsyConDiv flexRow wdsyConDiv1"> <div class="wdcdContent flexColumn"> <a href="http://www.php.cn/de/wenda/176406.html" target="_blank" title="Im übergeordneten Fenster erfolgt keine Ausgabe" class="wdcdcTitle">Im übergeordneten Fenster erfolgt keine Ausgabe</a> <a href="http://www.php.cn/de/wenda/176406.html" class="wdcdcCons">document.onclick = function(){ window.opener.document.write('Ich bin die Ausgabe des unter...</a> <div class="wdcdcInfo flexRow"> <div class="wdcdcileft"> <span class="wdcdciSpan"> Aus 2024-04-18 23:52:34</span> </div> <div class="wdcdciright flexRow"> <div class="wdcdcirdz flexRow ira"> <b class="wdcdcirdzi"></b>0 </div> <div class="wdcdcirpl flexRow ira"><b class="wdcdcirpli"></b>1</div> <div class="wdcdcirwatch flexRow ira"><b class="wdcdcirwatchi"></b>1536</div> </div> </div> </div> </div> <div class="wdsyConLine wdsyConLine2"></div> <div class="wdsyConDiv flexRow wdsyConDiv1"> <div class="wdcdContent flexColumn"> <a href="http://www.php.cn/de/wenda/176405.html" target="_blank" title="Wo gibt es die Kursunterlagen zum CSS-Mindmapping?" class="wdcdcTitle">Wo gibt es die Kursunterlagen zum CSS-Mindmapping?</a> <a href="http://www.php.cn/de/wenda/176405.html" class="wdcdcCons">Kursunterlagen</a> <div class="wdcdcInfo flexRow"> <div class="wdcdcileft"> <span class="wdcdciSpan"> Aus 2024-04-16 10:10:18</span> </div> <div class="wdcdciright flexRow"> <div class="wdcdcirdz flexRow ira"> <b class="wdcdcirdzi"></b>0 </div> <div class="wdcdcirpl flexRow ira"><b class="wdcdcirpli"></b>0</div> <div class="wdcdcirwatch flexRow ira"><b class="wdcdcirwatchi"></b>1571</div> </div> </div> </div> </div> <div class="wdsyConLine wdsyConLine2"></div> </div> </div> <div class="wzconZt" > <div class="wzczt-title"> <div>verwandte Themen</div> <a href="http://www.php.cn/de/faq/zt" target="_blank">Mehr> </a> </div> <div class="wzcttlist"> <ul> <li class="ul-li"> <a target="_blank" href="http://www.php.cn/de/faq/tianjixdyxld"><img src="https://img.php.cn/upload/subject/202407/22/2024072212214074123.jpg?x-oss-process=image/resize,m_fill,h_145,w_220" alt="Wie viel entspricht Dimensity 9000 Snapdragon?" /> </a> <a target="_blank" href="http://www.php.cn/de/faq/tianjixdyxld" class="title-a-spanl" title="Wie viel entspricht Dimensity 9000 Snapdragon?"><span>Wie viel entspricht Dimensity 9000 Snapdragon?</span> </a> </li> <li class="ul-li"> <a target="_blank" href="http://www.php.cn/de/faq/aspssmwj"><img src="https://img.php.cn/upload/subject/202407/22/2024072214355498821.jpg?x-oss-process=image/resize,m_fill,h_145,w_220" alt="asp welche Datei" /> </a> <a target="_blank" href="http://www.php.cn/de/faq/aspssmwj" class="title-a-spanl" title="asp welche Datei"><span>asp welche Datei</span> </a> </li> <li class="ul-li"> <a target="_blank" href="http://www.php.cn/de/faq/webstormstzmj"><img src="https://img.php.cn/upload/subject/202407/22/2024072212132467995.jpg?x-oss-process=image/resize,m_fill,h_145,w_220" alt="So beheben Sie einen Webstorm-Absturz" /> </a> <a target="_blank" href="http://www.php.cn/de/faq/webstormstzmj" class="title-a-spanl" title="So beheben Sie einen Webstorm-Absturz"><span>So beheben Sie einen Webstorm-Absturz</span> </a> </li> <li class="ul-li"> <a target="_blank" href="http://www.php.cn/de/faq/ttfhzdds"><img src="https://img.php.cn/upload/subject/202407/22/2024072213245771688.jpg?x-oss-process=image/resize,m_fill,h_145,w_220" alt="Wie hoch wird Ethereum steigen?" /> </a> <a target="_blank" href="http://www.php.cn/de/faq/ttfhzdds" class="title-a-spanl" title="Wie hoch wird Ethereum steigen?"><span>Wie hoch wird Ethereum steigen?</span> </a> </li> <li class="ul-li"> <a target="_blank" href="http://www.php.cn/de/faq/xlhybj"><img src="https://img.php.cn/upload/subject/202407/22/2024072214330014096.jpg?x-oss-process=image/resize,m_fill,h_145,w_220" alt="Thunder-Mitgliedschaftspatch" /> </a> <a target="_blank" href="http://www.php.cn/de/faq/xlhybj" class="title-a-spanl" title="Thunder-Mitgliedschaftspatch"><span>Thunder-Mitgliedschaftspatch</span> </a> </li> <li class="ul-li"> <a target="_blank" href="http://www.php.cn/de/faq/pythonzmdqexc"><img src="https://img.php.cn/upload/subject/202407/22/2024072212155997302.jpg?x-oss-process=image/resize,m_fill,h_145,w_220" alt="So lesen Sie Daten in einer Excel-Datei in Python" /> </a> <a target="_blank" href="http://www.php.cn/de/faq/pythonzmdqexc" class="title-a-spanl" title="So lesen Sie Daten in einer Excel-Datei in Python"><span>So lesen Sie Daten in einer Excel-Datei in Python</span> </a> </li> <li class="ul-li"> <a target="_blank" href="http://www.php.cn/de/faq/cjjhcyydqb"><img src="https://img.php.cn/upload/subject/202407/22/2024072212233818290.jpg?x-oss-process=image/resize,m_fill,h_145,w_220" alt="Was sind die Unterschiede zwischen C++ und der C-Sprache?" /> </a> <a target="_blank" href="http://www.php.cn/de/faq/cjjhcyydqb" class="title-a-spanl" title="Was sind die Unterschiede zwischen C++ und der C-Sprache?"><span>Was sind die Unterschiede zwischen C++ und der C-Sprache?</span> </a> </li> <li class="ul-li"> <a target="_blank" href="http://www.php.cn/de/faq/whilexhhdwxhd"><img src="https://img.php.cn/upload/subject/202407/22/2024072214043481269.jpg?x-oss-process=image/resize,m_fill,h_145,w_220" alt="Der Unterschied zwischen while-Schleife und do-while-Schleife" /> </a> <a target="_blank" href="http://www.php.cn/de/faq/whilexhhdwxhd" class="title-a-spanl" title="Der Unterschied zwischen while-Schleife und do-while-Schleife"><span>Der Unterschied zwischen while-Schleife und do-while-Schleife</span> </a> </li> </ul> </div> </div> </div> </div> <div class="phpwzright"> <div class="wzrOne"> <div class="wzroTitle">Beliebte Empfehlungen</div> <div class="wzroList"> <ul> <li> <div class="wzczzwzli"> <span class="layui-badge-dots wzrolr"></span> <a style="height: auto;" title="So konvertieren Sie einen String in den Typ int in der Go-Sprache" href="http://www.php.cn/de/faq/472227.html">So konvertieren Sie einen String in den Typ int in der Go-Sprache</a> </div> </li> <li> <div class="wzczzwzli"> <span class="layui-badge-dots wzrolr"></span> <a style="height: auto;" title="Ist Golang kostenlos?" href="http://www.php.cn/de/faq/499832.html">Ist Golang kostenlos?</a> </div> </li> <li> <div class="wzczzwzli"> <span class="layui-badge-dots wzrolr"></span> <a style="height: auto;" title="Was bedeutet Gin?" href="http://www.php.cn/de/faq/419289.html">Was bedeutet Gin?</a> </div> </li> <li> <div class="wzczzwzli"> <span class="layui-badge-dots wzrolr"></span> <a style="height: auto;" title="So löschen Sie Elemente in einem Array in Golang" href="http://www.php.cn/de/faq/439579.html">So löschen Sie Elemente in einem Array in Golang</a> </div> </li> <li> <div class="wzczzwzli"> <span class="layui-badge-dots wzrolr"></span> <a style="height: auto;" title="So ermitteln Sie, ob die Karte in Golang leer ist" href="http://www.php.cn/de/faq/441372.html">So ermitteln Sie, ob die Karte in Golang leer ist</a> </div> </li> </ul> </div> </div> <script src="https://sw.php.cn/hezuo/cac1399ab368127f9b113b14eb3316d0.js" type="text/javascript"></script> <div class="wzrThree"> <div class="wzrthree-title"> <div>Beliebte Tutorials</div> <a target="_blank" href="http://www.php.cn/de/course.html">Mehr> </a> </div> <div class="wzrthreelist swiper2"> <div class="wzrthreeTab swiper-wrapper"> <div class="check tabdiv swiper-slide" data-id="one">Verwandte Tutorials <div></div></div> <div class="tabdiv swiper-slide" data-id="two">Beliebte Empfehlungen<div></div></div> <div class="tabdiv swiper-slide" data-id="three">Aktuelle Kurse<div></div></div> </div> <ul class="one"> <li> <a target="_blank" href="http://www.php.cn/de/course/812.html" title="最新ThinkPHP 5.1全球首发视频教程(60天成就PHP大牛线上培训班课)" class="wzrthreelaimg"> <img src="https://img.php.cn/upload/course/000/000/041/620debc3eab3f377.jpg" alt="最新ThinkPHP 5.1全球首发视频教程(60天成就PHP大牛线上培训班课)"/> </a> <div class="wzrthree-right"> <a target="_blank" title="最新ThinkPHP 5.1全球首发视频教程(60天成就PHP大牛线上培训班课)" href="http://www.php.cn/de/course/812.html">最新ThinkPHP 5.1全球首发视频教程(60天成就PHP大牛线上培训班课)</a> <div class="wzrthreerb"> <div>1416550 <b class="kclbcollectb"></b></div> <div class="courseICollection" data-id="812"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> <li> <a target="_blank" href="http://www.php.cn/de/course/74.html" title="php入门教程之一周学会PHP" class="wzrthreelaimg"> <img src="https://img.php.cn/upload/course/000/000/068/6253d1e28ef5c345.png" alt="php入门教程之一周学会PHP"/> </a> <div class="wzrthree-right"> <a target="_blank" title="php入门教程之一周学会PHP" href="http://www.php.cn/de/course/74.html">php入门教程之一周学会PHP</a> <div class="wzrthreerb"> <div>4256985 <b class="kclbcollectb"></b></div> <div class="courseICollection" data-id="74"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> <li> <a target="_blank" href="http://www.php.cn/de/course/286.html" title="JAVA 初级入门视频教程" class="wzrthreelaimg"> <img src="https://img.php.cn/upload/course/000/000/068/62590a2bacfd9379.png" alt="JAVA 初级入门视频教程"/> </a> <div class="wzrthree-right"> <a target="_blank" title="JAVA 初级入门视频教程" href="http://www.php.cn/de/course/286.html">JAVA 初级入门视频教程</a> <div class="wzrthreerb"> <div>2473977 <b class="kclbcollectb"></b></div> <div class="courseICollection" data-id="286"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> <li> <a target="_blank" href="http://www.php.cn/de/course/504.html" title="小甲鱼零基础入门学习Python视频教程" class="wzrthreelaimg"> <img src="https://img.php.cn/upload/course/000/000/068/62590a67ce3a6655.png" alt="小甲鱼零基础入门学习Python视频教程"/> </a> <div class="wzrthree-right"> <a target="_blank" title="小甲鱼零基础入门学习Python视频教程" href="http://www.php.cn/de/course/504.html">小甲鱼零基础入门学习Python视频教程</a> <div class="wzrthreerb"> <div>503193 <b class="kclbcollectb"></b></div> <div class="courseICollection" data-id="504"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> <li> <a target="_blank" href="http://www.php.cn/de/course/2.html" title="PHP 零基础入门教程" class="wzrthreelaimg"> <img src="https://img.php.cn/upload/course/000/000/068/6253de27bc161468.png" alt="PHP 零基础入门教程"/> </a> <div class="wzrthree-right"> <a target="_blank" title="PHP 零基础入门教程" href="http://www.php.cn/de/course/2.html">PHP 零基础入门教程</a> <div class="wzrthreerb"> <div>843908 <b class="kclbcollectb"></b></div> <div class="courseICollection" data-id="2"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> </ul> <ul class="two" style="display: none;"> <li> <a target="_blank" href="http://www.php.cn/de/course/812.html" title="最新ThinkPHP 5.1全球首发视频教程(60天成就PHP大牛线上培训班课)" class="wzrthreelaimg"> <img src="https://img.php.cn/upload/course/000/000/041/620debc3eab3f377.jpg" alt="最新ThinkPHP 5.1全球首发视频教程(60天成就PHP大牛线上培训班课)"/> </a> <div class="wzrthree-right"> <a target="_blank" title="最新ThinkPHP 5.1全球首发视频教程(60天成就PHP大牛线上培训班课)" href="http://www.php.cn/de/course/812.html">最新ThinkPHP 5.1全球首发视频教程(60天成就PHP大牛线上培训班课)</a> <div class="wzrthreerb"> <div >1416550 Lernzeiten</div> <div class="courseICollection" data-id="812"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> <li> <a target="_blank" href="http://www.php.cn/de/course/286.html" title="JAVA 初级入门视频教程" class="wzrthreelaimg"> <img src="https://img.php.cn/upload/course/000/000/068/62590a2bacfd9379.png" alt="JAVA 初级入门视频教程"/> </a> <div class="wzrthree-right"> <a target="_blank" title="JAVA 初级入门视频教程" href="http://www.php.cn/de/course/286.html">JAVA 初级入门视频教程</a> <div class="wzrthreerb"> <div >2473977 Lernzeiten</div> <div class="courseICollection" data-id="286"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> <li> <a target="_blank" href="http://www.php.cn/de/course/504.html" title="小甲鱼零基础入门学习Python视频教程" class="wzrthreelaimg"> <img src="https://img.php.cn/upload/course/000/000/068/62590a67ce3a6655.png" alt="小甲鱼零基础入门学习Python视频教程"/> </a> <div class="wzrthree-right"> <a target="_blank" title="小甲鱼零基础入门学习Python视频教程" href="http://www.php.cn/de/course/504.html">小甲鱼零基础入门学习Python视频教程</a> <div class="wzrthreerb"> <div >503193 Lernzeiten</div> <div class="courseICollection" data-id="504"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> <li> <a target="_blank" href="http://www.php.cn/de/course/901.html" title="Web前端开发极速入门" class="wzrthreelaimg"> <img src="https://img.php.cn/upload/course/000/000/067/64be28a53a4f6310.png" alt="Web前端开发极速入门"/> </a> <div class="wzrthree-right"> <a target="_blank" title="Web前端开发极速入门" href="http://www.php.cn/de/course/901.html">Web前端开发极速入门</a> <div class="wzrthreerb"> <div >215244 Lernzeiten</div> <div class="courseICollection" data-id="901"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> <li> <a target="_blank" href="http://www.php.cn/de/course/234.html" title="零基础精通 PS 视频教程" class="wzrthreelaimg"> <img src="https://img.php.cn/upload/course/000/000/068/62611f57ed0d4840.jpg" alt="零基础精通 PS 视频教程"/> </a> <div class="wzrthree-right"> <a target="_blank" title="零基础精通 PS 视频教程" href="http://www.php.cn/de/course/234.html">零基础精通 PS 视频教程</a> <div class="wzrthreerb"> <div >876478 Lernzeiten</div> <div class="courseICollection" data-id="234"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> </ul> <ul class="three" style="display: none;"> <li> <a target="_blank" href="http://www.php.cn/de/course/1648.html" title="【web前端】Node.js快速入门" class="wzrthreelaimg"> <img src="https://img.php.cn/upload/course/000/000/067/662b5d34ba7c0227.png" alt="【web前端】Node.js快速入门"/> </a> <div class="wzrthree-right"> <a target="_blank" title="【web前端】Node.js快速入门" href="http://www.php.cn/de/course/1648.html">【web前端】Node.js快速入门</a> <div class="wzrthreerb"> <div >6325 Lernzeiten</div> <div class="courseICollection" data-id="1648"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> <li> <a target="_blank" href="http://www.php.cn/de/course/1647.html" title="国外Web开发全栈课程全集" class="wzrthreelaimg"> <img src="https://img.php.cn/upload/course/000/000/067/6628cc96e310c937.png" alt="国外Web开发全栈课程全集"/> </a> <div class="wzrthree-right"> <a target="_blank" title="国外Web开发全栈课程全集" href="http://www.php.cn/de/course/1647.html">国外Web开发全栈课程全集</a> <div class="wzrthreerb"> <div >4950 Lernzeiten</div> <div class="courseICollection" data-id="1647"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> <li> <a target="_blank" href="http://www.php.cn/de/course/1646.html" title="Go语言实战之 GraphQL" class="wzrthreelaimg"> <img src="https://img.php.cn/upload/course/000/000/067/662221173504a436.png" alt="Go语言实战之 GraphQL"/> </a> <div class="wzrthree-right"> <a target="_blank" title="Go语言实战之 GraphQL" href="http://www.php.cn/de/course/1646.html">Go语言实战之 GraphQL</a> <div class="wzrthreerb"> <div >4154 Lernzeiten</div> <div class="courseICollection" data-id="1646"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> <li> <a target="_blank" href="http://www.php.cn/de/course/1645.html" title="550W粉丝大佬手把手从零学JavaScript" class="wzrthreelaimg"> <img src="https://img.php.cn/upload/course/000/000/067/662077e163124646.png" alt="550W粉丝大佬手把手从零学JavaScript"/> </a> <div class="wzrthree-right"> <a target="_blank" title="550W粉丝大佬手把手从零学JavaScript" href="http://www.php.cn/de/course/1645.html">550W粉丝大佬手把手从零学JavaScript</a> <div class="wzrthreerb"> <div >631 Lernzeiten</div> <div class="courseICollection" data-id="1645"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> <li> <a target="_blank" href="http://www.php.cn/de/course/1644.html" title="python大神Mosh,零基础小白6小时完全入门" class="wzrthreelaimg"> <img src="https://img.php.cn/upload/course/000/000/067/6616418ca80b8916.png" alt="python大神Mosh,零基础小白6小时完全入门"/> </a> <div class="wzrthree-right"> <a target="_blank" title="python大神Mosh,零基础小白6小时完全入门" href="http://www.php.cn/de/course/1644.html">python大神Mosh,零基础小白6小时完全入门</a> <div class="wzrthreerb"> <div >21161 Lernzeiten</div> <div class="courseICollection" data-id="1644"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> </ul> </div> <script> var mySwiper = new Swiper('.swiper2', { autoplay: false,//可选选项,自动滑动 slidesPerView : 'auto', }) $('.wzrthreeTab>div').click(function(e){ $('.wzrthreeTab>div').removeClass('check') $(this).addClass('check') $('.wzrthreelist>ul').css('display','none') $('.'+e.currentTarget.dataset.id).show() }) </script> </div> <div class="wzrFour"> <div class="wzrfour-title"> <div>Neueste Downloads</div> <a href="http://www.php.cn/de/xiazai">Mehr> </a> </div> <script> $(document).ready(function(){ var sjyx_banSwiper = new Swiper(".sjyx_banSwiperwz",{ speed:1000, autoplay:{ delay:3500, disableOnInteraction: false, }, pagination:{ el:'.sjyx_banSwiperwz .swiper-pagination', clickable :false, }, loop:true }) }) </script> <div class="wzrfourList swiper3"> <div class="wzrfourlTab swiper-wrapper"> <div class="check swiper-slide" data-id="onef">Web-Effekte <div></div></div> <div class="swiper-slide" data-id="twof">Quellcode der Website<div></div></div> <div class="swiper-slide" data-id="threef">Website-Materialien<div></div></div> <div class="swiper-slide" data-id="fourf">Frontend-Vorlage<div></div></div> </div> <ul class="onef"> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="jQuery企业留言表单联系代码" href="http://www.php.cn/de/xiazai/js/8071">[表单按钮] jQuery企业留言表单联系代码</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="HTML5 MP3音乐盒播放特效" href="http://www.php.cn/de/xiazai/js/8070">[播放器特效] HTML5 MP3音乐盒播放特效</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="HTML5炫酷粒子动画导航菜单特效" href="http://www.php.cn/de/xiazai/js/8069">[菜单导航] HTML5炫酷粒子动画导航菜单特效</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="jQuery可视化表单拖拽编辑代码" href="http://www.php.cn/de/xiazai/js/8068">[表单按钮] jQuery可视化表单拖拽编辑代码</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="VUE.JS仿酷狗音乐播放器代码" href="http://www.php.cn/de/xiazai/js/8067">[播放器特效] VUE.JS仿酷狗音乐播放器代码</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="经典html5推箱子小游戏" href="http://www.php.cn/de/xiazai/js/8066">[html5特效] 经典html5推箱子小游戏</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="jQuery滚动添加或减少图片特效" href="http://www.php.cn/de/xiazai/js/8065">[图片特效] jQuery滚动添加或减少图片特效</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="CSS3个人相册封面悬停放大特效" href="http://www.php.cn/de/xiazai/js/8064">[相册特效] CSS3个人相册封面悬停放大特效</a> </div> </li> </ul> <ul class="twof" style="display:none"> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="http://www.php.cn/xiazai/code/8328" title="Website-Vorlage für Reinigungs- und Reparaturdienste für Inneneinrichtungen" target="_blank">[Frontend-Vorlage] Website-Vorlage für Reinigungs- und Reparaturdienste für Inneneinrichtungen</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="http://www.php.cn/xiazai/code/8327" title="Persönliche Lebenslauf-Leitfaden-Seitenvorlage in frischen Farben" target="_blank">[Frontend-Vorlage] Persönliche Lebenslauf-Leitfaden-Seitenvorlage in frischen Farben</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="http://www.php.cn/xiazai/code/8326" title="Web-Vorlage für kreativen Job-Lebenslauf für Designer" target="_blank">[Frontend-Vorlage] Web-Vorlage für kreativen Job-Lebenslauf für Designer</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="http://www.php.cn/xiazai/code/8325" title="Website-Vorlage eines modernen Ingenieurbauunternehmens" target="_blank">[Frontend-Vorlage] Website-Vorlage eines modernen Ingenieurbauunternehmens</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="http://www.php.cn/xiazai/code/8324" title="Responsive HTML5-Vorlage für Bildungseinrichtungen" target="_blank">[Frontend-Vorlage] Responsive HTML5-Vorlage für Bildungseinrichtungen</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="http://www.php.cn/xiazai/code/8323" title="Vorlage für die Website eines Online-E-Book-Shops für Einkaufszentren" target="_blank">[Frontend-Vorlage] Vorlage für die Website eines Online-E-Book-Shops für Einkaufszentren</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="http://www.php.cn/xiazai/code/8322" title="IT-Technologie löst Website-Vorlage für Internetunternehmen" target="_blank">[Frontend-Vorlage] IT-Technologie löst Website-Vorlage für Internetunternehmen</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="http://www.php.cn/xiazai/code/8321" title="Website-Vorlage für Devisenhandelsdienste im violetten Stil" target="_blank">[Frontend-Vorlage] Website-Vorlage für Devisenhandelsdienste im violetten Stil</a> </div> </li> </ul> <ul class="threef" style="display:none"> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="http://www.php.cn/de/xiazai/sucai/3078" target="_blank" title="可爱的夏天元素矢量素材(EPS+PNG)">[PNG素材] 可爱的夏天元素矢量素材(EPS+PNG)</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="http://www.php.cn/de/xiazai/sucai/3077" target="_blank" title="四个红的的 2023 毕业徽章矢量素材(AI+EPS+PNG)">[PNG素材] 四个红的的 2023 毕业徽章矢量素材(AI+EPS+PNG)</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="http://www.php.cn/de/xiazai/sucai/3076" target="_blank" title="唱歌的小鸟和装满花朵的推车设计春天banner矢量素材(AI+EPS)">[banner图] 唱歌的小鸟和装满花朵的推车设计春天banner矢量素材(AI+EPS)</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="http://www.php.cn/de/xiazai/sucai/3075" target="_blank" title="金色的毕业帽矢量素材(EPS+PNG)">[PNG素材] 金色的毕业帽矢量素材(EPS+PNG)</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="http://www.php.cn/de/xiazai/sucai/3074" target="_blank" title="黑白风格的山脉图标矢量素材(EPS+PNG)">[PNG素材] 黑白风格的山脉图标矢量素材(EPS+PNG)</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="http://www.php.cn/de/xiazai/sucai/3073" target="_blank" title="不同颜色披风和不同姿势的超级英雄剪影矢量素材(EPS+PNG)">[PNG素材] 不同颜色披风和不同姿势的超级英雄剪影矢量素材(EPS+PNG)</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="http://www.php.cn/de/xiazai/sucai/3072" target="_blank" title="扁平风格的植树节banner矢量素材(AI+EPS)">[banner图] 扁平风格的植树节banner矢量素材(AI+EPS)</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="http://www.php.cn/de/xiazai/sucai/3071" target="_blank" title="九个漫画风格的爆炸聊天气泡矢量素材(EPS+PNG)">[PNG素材] 九个漫画风格的爆炸聊天气泡矢量素材(EPS+PNG)</a> </div> </li> </ul> <ul class="fourf" style="display:none"> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="http://www.php.cn/xiazai/code/8328" target="_blank" title="Website-Vorlage für Reinigungs- und Reparaturdienste für Inneneinrichtungen">[Frontend-Vorlage] Website-Vorlage für Reinigungs- und Reparaturdienste für Inneneinrichtungen</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="http://www.php.cn/xiazai/code/8327" target="_blank" title="Persönliche Lebenslauf-Leitfaden-Seitenvorlage in frischen Farben">[Frontend-Vorlage] Persönliche Lebenslauf-Leitfaden-Seitenvorlage in frischen Farben</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="http://www.php.cn/xiazai/code/8326" target="_blank" title="Web-Vorlage für kreativen Job-Lebenslauf für Designer">[Frontend-Vorlage] Web-Vorlage für kreativen Job-Lebenslauf für Designer</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="http://www.php.cn/xiazai/code/8325" target="_blank" title="Website-Vorlage eines modernen Ingenieurbauunternehmens">[Frontend-Vorlage] Website-Vorlage eines modernen Ingenieurbauunternehmens</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="http://www.php.cn/xiazai/code/8324" target="_blank" title="Responsive HTML5-Vorlage für Bildungseinrichtungen">[Frontend-Vorlage] Responsive HTML5-Vorlage für Bildungseinrichtungen</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="http://www.php.cn/xiazai/code/8323" target="_blank" title="Vorlage für die Website eines Online-E-Book-Shops für Einkaufszentren">[Frontend-Vorlage] Vorlage für die Website eines Online-E-Book-Shops für Einkaufszentren</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="http://www.php.cn/xiazai/code/8322" target="_blank" title="IT-Technologie löst Website-Vorlage für Internetunternehmen">[Frontend-Vorlage] IT-Technologie löst Website-Vorlage für Internetunternehmen</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="http://www.php.cn/xiazai/code/8321" target="_blank" title="Website-Vorlage für Devisenhandelsdienste im violetten Stil">[Frontend-Vorlage] Website-Vorlage für Devisenhandelsdienste im violetten Stil</a> </div> </li> </ul> </div> <script> var mySwiper = new Swiper('.swiper3', { autoplay: false,//可选选项,自动滑动 slidesPerView : 'auto', }) $('.wzrfourlTab>div').click(function(e){ $('.wzrfourlTab>div').removeClass('check') $(this).addClass('check') $('.wzrfourList>ul').css('display','none') $('.'+e.currentTarget.dataset.id).show() }) </script> </div> </div> </div> <div class="phpFoot"> <div class="phpFootIn"> <div class="phpFootCont"> <div class="phpFootLeft"> <dl> <dt> <a href="http://www.php.cn/de/about/xieyi.html" rel="nofollow" target="_blank" title="Über uns" class="cBlack">Über uns</a> <a href="http://www.php.cn/de/about/yinsi.html" rel="nofollow" target="_blank" title="Haftungsausschluss" class="cBlack">Haftungsausschluss</a> <a href="http://www.php.cn/de/update/article_0_1.html" target="_blank" title="Sitemap" class="cBlack">Sitemap</a> <div class="clear"></div> </dt> <dd class="cont1">Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!</dd> </dl> </div> </div> </div> </div> <input type="hidden" id="verifycode" value="/captcha.html"> <script>layui.use(['element', 'carousel'], function () {var element = layui.element;$ = layui.jquery;var carousel = layui.carousel;carousel.render({elem: '#test1', width: '100%', height: '330px', arrow: 'always'});$.getScript('/static/js/jquery.lazyload.min.js', function () {$("img").lazyload({placeholder: "/static/images/load.jpg", effect: "fadeIn", threshold: 200, skip_invisible: false});});});</script> <script src="/static/js/common_new.js"></script> <script type="text/javascript" src="/static/js/jquery.cookie.js?1730885868"></script> <script src="https://vdse.bdstatic.com//search-video.v1.min.js"></script> <link rel='stylesheet' id='_main-css' href='/static/css/viewer.min.css?2' type='text/css' media='all'/> <script type='text/javascript' src='/static/js/viewer.min.js?1'></script> <script type='text/javascript' src='/static/js/jquery-viewer.min.js'></script> <script type="text/javascript" src="/static/js/global.min.js?5.5.53"></script> </body> </html>