>  기사  >  백엔드 개발  >  PHP를 사용하여 Steam 게임 정보 크롤링

PHP를 사용하여 Steam 게임 정보 크롤링

王林
王林원래의
2023-06-14 17:26:332033검색

게임 산업이 발전함에 따라 점점 더 많은 게이머가 Steam 플랫폼을 통해 게임을 구매하고 있습니다. 세계 최대의 PC 게임 배포 플랫폼인 Steam은 풍부한 게임 및 커뮤니티 기능을 제공하여 전 세계의 수많은 게임 매니아들을 끌어 모으고 있습니다. Steam 게임 매니아이거나 Steam 게임 정보를 알고 싶은 개발자라면 이 문서에서는 PHP 언어를 사용하여 Steam 게임 정보를 크롤링하는 방법을 소개합니다.

1. Steam API 이해

Steam은 공식 API(애플리케이션 프로그램 인터페이스, 애플리케이션 프로그래밍 인터페이스)를 제공합니다. 개발자라면 공식 API를 사용하여 게임 정보를 얻을 수 있습니다. 하지만 공식 API를 사용하려면 먼저 인증이 필요하며, 공식 API에는 많은 제약이 있습니다. 예를 들어, 게임 가격, 평점, 추천 및 기타 정보를 얻으려면 사용자가 Steam에 로그인해야 합니다. 따라서 이 기사에서는 PHP를 사용하여 Steam 게임 정보에 대한 웹 데이터를 크롤링하는 방법을 소개합니다.

2. Steam 게임 페이지의 소스 코드 얻기

PHP를 사용하여 Steam 게임 정보를 크롤링하기 전에 먼저 Steam 게임 페이지의 소스 코드를 얻는 방법을 이해해야 합니다. Steam 게임 세부 정보 페이지를 열고, 브라우저에서 개발자 도구를 열고, "네트워크" 탭으로 전환하고, 요청 유형을 "모두"로 설정하고, 페이지를 새로 고치세요. 모든 요청 기록을 볼 수 있으며, 우리에게 필요한 요청인 "store.steampowered.com"이라는 기록이 있습니다.

요청 아래로 커서를 이동하고 오른쪽의 "헤더" 탭에서 "요청 URL"을 찾으세요. 이 URL은 게임 세부정보 페이지의 전체 주소를 복사하고 를 사용하세요. file_get_contents() 함수는 페이지의 소스 코드를 가져옵니다. 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. Steam 게임 페이지 소스 코드 구문 분석

Steam 게임 정보 크롤링의 다음 단계는 Steam 게임 페이지 소스 코드를 구문 분석하는 것입니다. PHP에서 DOMDocument 및 DOMXPath 클래스를 사용하여 HTML 문서를 구문 분석할 수 있습니다. 먼저 다운로드한 페이지 소스 코드를 DOMDocument 클래스의 loadHTML() 메서드에 전달하여 DOM 개체를 생성한 다음 query()를 통해 쿼리해야 합니다. DOMXPath 클래스 요소의 메서드입니다.

다음은 Steam 게임의 이름과 출시 날짜를 구문 분석할 수 있는 샘플 코드입니다.
    $price = $xpath->query('//div[@class="game_purchase_price"]')->item(0)->nodeValue;
  1. 위 코드에서는 XPath 쿼리 언어를 사용하여 Steam 게임 페이지의 요소를 쿼리합니다. 그 중 "//@class=" 매개변수는 쿼리할 클래스 이름을 가리키고, item() 메서드는 첫 번째로 일치하는 요소를 가져오는 데 사용되며, nodeValue code> 속성은 요소의 텍스트 콘텐츠를 가져오는 데 사용됩니다.
4. Steam 게임에 대한 추가 정보 크롤링
  1. 이제 이전 단계를 바탕으로 동일한 방법을 사용하여 Steam 게임에 대한 다른 정보를 얻을 수 있습니다. 다음은 일반적인 Steam 게임 정보 쿼리입니다.
  2. 실제 사용 시 필요에 따라 쿼리해야 하는 요소를 맞춤 설정할 수 있습니다. 다만, Steam 웹사이트의 HTML 구조가 변경될 수 있으니, 코드가 제대로 실행되는지 확인하시기 바랍니다. 웹페이지 구조가 변경된 경우에는 쿼리 방법을 업데이트해야 합니다.
    5. Steam 게임 정보 제출
  1. Steam 게임 정보 크롤링이 완료되면 이 정보를 귀하의 데이터베이스나 기타 데이터 저장소에 제출할 수 있습니다. 실제로는 IP 주소 제한, 인증 코드 등과 같은 일부 크롤러 방지 메커니즘을 접할 수 있으므로 PHP 코드를 작성할 때 크롤러에 대한 Steam의 약관을 준수하고 데이터 스크래핑 방법을 합리적으로 사용하도록 주의하십시오.
    결론
  1. 이 글에서는 PHP 언어를 사용하여 Steam 게임 정보를 크롤링하는 기본적인 방법을 소개합니다. DOMDocument 및 DOMXPath와 같은 기술을 사용하여 Steam 게임 페이지에서 게임 이름, 게시자, 가격, 등급 및 권장 구성과 같은 유용한 정보를 추출할 수 있습니다. 이 기사가 크롤러 매니아, Steam 게임 개발자, Steam 플레이어에게 도움이 되기를 바랍니다.

위 내용은 PHP를 사용하여 Steam 게임 정보 크롤링의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.