Heim  >  Artikel  >  Backend-Entwicklung  >  Verwenden Sie PHP, um Steam-Spielinformationen zu crawlen

Verwenden Sie PHP, um Steam-Spielinformationen zu crawlen

王林
王林Original
2023-06-14 17:26:331936Durchsuche

Mit der Entwicklung der Spielebranche kaufen immer mehr Spieler Spiele über die Steam-Plattform. Als weltweit größte Vertriebsplattform für PC-Spiele bietet Steam eine Fülle von Spiel- und Community-Funktionen und zieht eine große Anzahl von Spielebegeisterten aus der ganzen Welt an. Wenn Sie ein Steam-Spiele-Enthusiast oder Entwickler sind und Informationen zu Steam-Spielen erhalten möchten, erfahren Sie in diesem Artikel, wie Sie mithilfe der PHP-Sprache Informationen zu Steam-Spielen crawlen.

1. Verstehen Sie die Steam-API

Steam stellt eine offizielle API (Application Program Interface, Anwendungsprogrammierschnittstelle) zur Verfügung. Wenn Sie Entwickler sind, können Sie die offizielle API verwenden, um Spielinformationen zu erhalten. Die Verwendung der offiziellen API erfordert jedoch zunächst eine Authentifizierung und die offizielle API weist viele Einschränkungen auf. Um beispielsweise Spielepreise, Bewertungen, Empfehlungen und andere Informationen zu erhalten, müssen sich Benutzer bei Steam anmelden. Daher wird in diesem Artikel erläutert, wie Sie mit PHP Webdaten von Steam-Spielinformationen crawlen.

2. Erhalten Sie den Quellcode der Steam-Spieleseite

Bevor wir PHP zum Crawlen von Steam-Spielinformationen verwenden, müssen wir zunächst verstehen, wie wir den Quellcode der Steam-Spieleseite erhalten. Öffnen Sie eine beliebige Steam-Spieldetailseite, öffnen Sie die Entwicklertools im Browser, wechseln Sie zur Registerkarte „Netzwerk“, stellen Sie den Anforderungstyp auf „Alle“ ein und aktualisieren Sie die Seite. Sie sehen alle Anfragedatensätze, und es gibt einen mit dem Namen „store.steampowered.com“, der Anfrage, die wir benötigen.

Bewegen Sie den Cursor unter die Anfrage und suchen Sie die „Anfrage-URL“ unter der Registerkarte „Kopfzeilen“ auf der rechten Seite. Diese URL ist die vollständige Adresse der Spieldetailseite und verwenden Sie Die Funktion file_get_contents() ruft den Quellcode der Seite ab. file_get_contents() 函数获取该页面源代码。

三、解析 Steam 游戏页面源代码

爬取 Steam 游戏信息的下一步是解析 Steam 游戏页面源代码。我们可以使用 PHP 中的 DOMDocument 和 DOMXPath 类来解析 HTML 文档。 首先,我们需要将下载的页面源代码传递给 DOMDocument 类的 loadHTML() 方法来创建一个 DOM 对象,然后通过 DOMXPath 类的 query() 方法来查询元素。

下面是一个示例代码,可以解析出 Steam 游戏的名字和发布日期:

$url = "https://store.steampowered.com/app/105600/";
$html = file_get_contents($url);

$doc = new DOMDocument();
$doc->loadHTML($html);

$xpath = new DOMXPath($doc);

$name = $xpath->query('//div[@class="apphub_AppName"]')->item(0)->nodeValue;
$date = $xpath->query('//div[@class="date"]')->item(0)->nodeValue;

echo "游戏名字:".$name."
";
echo "发布日期:".$date."
";

上面的代码中,我们使用了 XPath 查询语言来查询 Steam 游戏页面中的元素。其中,“//@class=” 参数指向了需要查询的类名, item() 方法用于获取第一个匹配的元素, nodeValue

3. Analysieren Sie den Quellcode der Steam-Spielseite.

Der nächste Schritt beim Crawlen von Steam-Spielinformationen besteht darin, den Quellcode der Steam-Spielseite zu analysieren. Wir können HTML-Dokumente mithilfe der Klassen DOMDocument und DOMXPath in PHP analysieren. Zuerst müssen wir den heruntergeladenen Seitenquellcode an die Methode loadHTML() der DOMDocument-Klasse übergeben, um ein DOM-Objekt zu erstellen, und es dann über query() abfragen Methode des DOMXPath-Klassenelements.

Das Folgende ist ein Beispielcode, der den Namen und das Veröffentlichungsdatum eines Steam-Spiels analysieren kann:
    $price = $xpath->query('//div[@class="game_purchase_price"]')->item(0)->nodeValue;
  1. Im obigen Code verwenden wir die XPath-Abfragesprache, um die Elemente auf der Steam-Spieleseite abzufragen. Darunter zeigt der Parameter „//@class=" auf den abzufragenden Klassennamen, die Methode item() wird verwendet, um das erste passende Element zu erhalten, und der Parameter nodeValue Das Attribut code> wird verwendet, um den Textinhalt des Elements abzurufen.
4. Weitere Informationen zu Steam-Spielen crawlen
  1. Auf der Grundlage der vorherigen Schritte können Sie nun die gleiche Methode verwenden, um weitere Informationen zu Steam-Spielen zu erhalten. Im Folgenden sind einige häufige Abfragen von Steam-Spielinformationen aufgeführt.
  2. Bei der tatsächlichen Verwendung können Sie die Elemente, die Sie abfragen müssen, entsprechend Ihren Anforderungen anpassen. Bitte beachten Sie jedoch, dass sich die HTML-Struktur der Steam-Website ändern kann. Überprüfen Sie daher, ob Ihr Code ordnungsgemäß ausgeführt wird. Wenn sich die Webseitenstruktur ändert, müssen Sie Ihre Abfragemethode aktualisieren.
    5. Steam-Spielinformationen übermitteln
  1. Nach Abschluss des Crawlings der Steam-Spielinformationen können wir diese Informationen an Ihre Datenbank oder einen anderen Datenspeicher übermitteln. In der Praxis stoßen Sie möglicherweise auf einige Anti-Crawler-Mechanismen, wie z. B. die Begrenzung von IP-Adressen, Bestätigungscodes usw. Achten Sie daher beim Schreiben von PHP-Code darauf, die Steam-Bedingungen für Crawler einzuhalten und Daten-Scraping-Methoden angemessen zu verwenden.
    Fazit
  1. In diesem Artikel wird die grundlegende Methode zur Verwendung der PHP-Sprache zum Crawlen von Steam-Spielinformationen vorgestellt. Durch den Einsatz von Technologien wie DOMDocument und DOMXPath können wir nützliche Informationen aus Steam-Spieleseiten extrahieren, wie z. B. Spielname, Herausgeber, Preis, Bewertungen und empfohlene Konfigurationen. Ich hoffe, dass dieser Artikel für Crawler-Enthusiasten, Steam-Spieleentwickler und Steam-Spieler hilfreich sein kann.

Das obige ist der detaillierte Inhalt vonVerwenden Sie PHP, um Steam-Spielinformationen zu crawlen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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