


Praktischer Crawler-Kampf: Verwenden Sie PHP, um die Produktinformationen von JD.com zu crawlen
Im heutigen E-Commerce-Zeitalter kann JD.com als eines der größten umfassenden E-Commerce-Unternehmen Chinas sogar täglich Zehntausende Produkte in seine Regale stellen. Für die Mehrheit der Verbraucher bietet JD.com eine große Auswahl an Produkten und vorteilhafte Preisnachlässe. Manchmal müssen wir jedoch JD-Produktinformationen stapelweise abrufen, schnell überprüfen, vergleichen, analysieren usw. Zu diesem Zeitpunkt müssen wir Crawler-Technologie verwenden. In diesem Artikel stellen wir die Implementierung der Verwendung der PHP-Sprache zum Schreiben eines Crawlers vor, der uns beim schnellen Crawlen von JD.com-Produktinformationen unterstützt.
- Vorbereitung
Zuerst müssen wir die für PHP erforderliche Curl-Erweiterung installieren und einige häufig verwendete Variablen festlegen. Die spezifischen Schritte sind wie folgt:
Öffnen Sie zunächst das Terminal oder die Powershell und geben Sie den folgenden Befehl ein, um das Curl-Erweiterungspaket zu installieren:
sudo apt-get install php7.0-curl //ubuntu系统安装
brew install curl-openssl php-curl //macOS系统安装
Als nächstes müssen wir einige einfache Variablen im PHP-Code festlegen, damit wir ihn verwenden können im nachfolgenden Code. Beispielsweise definieren wir eine Variable „$jgname“, um die Zugriffsadresse von JD.com darzustellen, und eine weitere Variable „$skulist“, um die Zugriffsadresse jedes Produkts darzustellen. Der Code lautet wie folgt:
$jgname= "https://list.jd.com/list.html?cat=1318,1486,1490&ev=exbrand_13910&sort=sort_rank_asc&trans=1&JL=3_%E5%93%81%E7%89%8C_%E5%B0%8F%E7%B1%B3%EF%BC%88MI%EF%BC%89#J_crumbsBar"; $skulist="https://item.jd.com/1285310.html";
- Holen Sie sich die Produktliste
Da wir nun die Umgebung und die erforderlichen Variablen vorbereitet haben, können wir mit dem Schreiben unseres Crawlers beginnen. Zuerst müssen wir die Produktliste der Ziel-JD-Produktseite abrufen. Wir können Curl-Tools und reguläre Ausdrücke verwenden, um den Ziellink basierend auf der Zugriffsadresse der JD.com-Produktseite (d. h. $jgname) zu erhalten. Erhalten Sie Produktinformationen wie Preis, Anzahl der Bewertungen, Produktname, Produktnummer usw.
Der spezifische Code lautet wie folgt:
$ch = curl_init();//初始化curl curl_setopt($ch, CURLOPT_URL,$jgname);//设置url属性 curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);//设置是否将curl_exec()获取的信息以字符串返回,而不是直接输出 $result = curl_exec ($ch);//执行一个curl会话 curl_close ($ch);//关闭curl会话 preg_match_all("/<li .*?</li>/", $result, $matches);//正则表达式把需要的内容取出来,即匹配<li>标签 $goodsinfo=array();//创建一个商品列表 foreach ($matches[0] as $item) { //获取商品信息 preg_match("/sku="(d+)"/",$item,$skuid); preg_match("/标题">s{0,}([dD]+?)s{0,}</a>/",$item,$titlename); preg_match("/<strong>¥</strong>[s ]{0,}<i>(d+.d+)</i>/",$item,$price); preg_match("/<divs{0,}class="p-commit">[s ]+<strong[^>]+>(d+)/",$item,$commentnum); preg_match("/<as{0,}href="([dD]+?)"/",$item,$link); //将商品信息存储到商品列表中 $goods=array( "title"=>trim($titlename[1]), "price"=>trim($price[1]), "link"=>"https:".$link[1], "skuid"=>trim($skuid[1]), "commentnum"=>trim($commentnum[1]) ); array_push($goodsinfo,$goods);//将商品信息添加到商品列表 //输出测试:打印商品信息 echo $goods['title']." ".$goods['price']." ".$goods['commentnum']." ".$goods['link']."<br>"; }
Im obigen Code speichern wir den Link und die Nummer jedes erhaltenen Produkts in $goods'skuid' und 'link' und fügen weitere nützliche Informationen hinzu (Preis, Kommentarnummer usw.). .) in das $goods-Array. Schließlich wird es über die Funktion array_push() zum Array $goodsinfo hinzugefügt. Sie können Schleifenanweisungen verwenden, um Produktlisteninformationen auszugeben und so die Crawling-Ergebnisse einfacher anzuzeigen.
- Produktdetails abrufen
Jetzt haben wir die Produktlisteninformationen auf der JD-Produkttabellenseite erhalten. Der nächste Schritt besteht darin, die detaillierten Informationen zu jedem Produkt abzurufen und sie im $goods-Array zu speichern. Im vorherigen Schritt haben wir die Nummer und den Link jedes Produkts im Array $goods ermittelt. Daher besteht der nächste Schritt darin, jeden Link zu öffnen, um verschiedene nützliche Produktinformationen zu erhalten. Der spezifische Code lautet wie folgt:
foreach ($goodsinfo as &$goods) { //更新每个商品的网页链接 $link="https://item.jd.com/".$goods['skuid'].".html"; $goods['link']=$link; $canBuy=true;//官网上可以买 //判断是否能够购买 preg_match('/无货/',file_get_contents($link)) && ($canBuy=false); //利用curl工具打开网页链接,获得网页代码 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$link); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); $html = curl_exec ($ch); curl_close ($ch); //分析网页代码,使用正则表达式获取商品种类,价格,颜色,库存数量等数据,并保存 preg_match_all('/<divs{0,}class="Ptable".*?>[s ]+<divs{0,}class="Ptable-item".*?>[s ]+([dD]*?)</div>/',$html,$items); preg_match_all('/<strong>商品名称</strong><em>(d.*)</em>/',$html,$item); $goods['title']=$item[1][0]; echo $goods['title']; if($canBuy) { foreach ($items[1] as &$item) { //去掉html标记、空格、换行符 $item=strip_tags($item); $item=str_replace(" ","",$item); $item=str_replace(" ","",$item); $item=str_replace(" ","",$item); $item=str_replace(" ","",$item); //切割字符串,获取键值对 preg_match_all('/([dD]*?):([dD]*?)[ ]/',$item,$item2); if(count($item2[1])>0){ for($i=0;$i<count($item2[1]);$i++){ if($item2[1][$i]=="价格"){ $goods['price']=$item2[2][$i]; }elseif($item2[1][$i]=="颜色"){ $goods['color']=$item2[2][$i]; }elseif($item2[1][$i]=="产地"){ $goods['producePlace']=$item2[2][$i]; }elseif($item2[1][$i]=="商品编号"){ $goods['goodsn']=$item2[2][$i]; }elseif($item2[1][$i]=="型号"){ $goods['model']=$item2[2][$i]; }elseif($item2[1][$i]=="商品毛重"){ $goods['grossWeight']=$item2[2][$i]; }elseif($item2[1][$i]=="规格"){ $goods['specifications']=$item2[2][$i]; } } } } //获取商品评论数 preg_match_all('/<as{0,}href="#comment"s{0,}target="_self">s{0,}[dD]+?<strongs{0,}class="curr-num">(d*)</',$html,$comment); $goods['commentnum']=$comment[1][0]; } }
In diesen Codes verwenden wir eine Technik ähnlich der in Schritt 2, wobei wir das Curl-Tool verwenden, um den detaillierten Link jedes Produkts zu erhalten, und dann reguläre Ausdrücke verwenden, um einige nützliche Produktinformationen zu erhalten. Die erhaltenen Produktdetails können wir wie folgt ausgeben:
foreach ($goodsinfo as &$goods) { echo $goods['skuid']." ".$goods['title']." ".$goods['price']." ".$goods['commentnum']." ".$goods['link']."<br>"; }
Das war's für den gesamten Prozess. In tatsächlichen Anwendungen können wir basierend auf den tatsächlichen Anforderungen einige Anpassungen und Optimierungen am Code vornehmen, z. B. das Hinzufügen einer Ausnahmebehandlung, das Festlegen von Anforderungsheadern, das Anpassen der Crawling-Geschwindigkeit usw. Kurz gesagt, auf dieser Grundlage kann ein stabiler und effizienter Crawler aufgebaut werden, um JD-Produktinformationen zu erhalten und E-Commerce-Vorgänge und -Analysen weiter zu unterstützen.
Das obige ist der detaillierte Inhalt vonPraktischer Crawler-Kampf: Verwenden Sie PHP, um die Produktinformationen von JD.com zu crawlen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

Wenn Sie ein erfahrener PHP-Entwickler sind, haben Sie möglicherweise das Gefühl, dass Sie dort waren und dies bereits getan haben. Sie haben eine beträchtliche Anzahl von Anwendungen entwickelt, Millionen von Codezeilen debuggt und eine Reihe von Skripten optimiert, um op zu erreichen

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Was sind die magischen Methoden von PHP? Zu den magischen Methoden von PHP gehören: 1. \ _ \ _ Konstrukt, verwendet, um Objekte zu initialisieren; 2. \ _ \ _ Destruct, verwendet zur Reinigung von Ressourcen; 3. \ _ \ _ Call, behandeln Sie nicht existierende Methodenaufrufe; 4. \ _ \ _ GET, Implementieren Sie den dynamischen Attributzugriff; 5. \ _ \ _ Setzen Sie dynamische Attributeinstellungen. Diese Methoden werden in bestimmten Situationen automatisch aufgerufen, wodurch die Code -Flexibilität und -Effizienz verbessert werden.
