>  기사  >  백엔드 개발  >  빠르고 효율적인 웹 크롤러 만들기: PHP 및 Selenium 예제

빠르고 효율적인 웹 크롤러 만들기: PHP 및 Selenium 예제

WBOY
WBOY원래의
2023-06-15 16:10:521515검색

인터넷의 지속적인 발전으로 인해 데이터 크롤링은 많은 사람들에게 필수적인 기술이 되었습니다. 웹 크롤러는 데이터 크롤링을 위한 중요한 도구 중 하나입니다.

웹 크롤러는 자동으로 웹사이트에 액세스하고, 콘텐츠를 가져오고, 페이지를 분석하고, 필요한 데이터를 추출할 수 있습니다. 그중 Selenium은 실제 사용자 작업을 시뮬레이션할 수 있는 탁월한 네트워크 자동화 테스트 도구이며 웹 크롤러 구축에 매우 유용합니다.

이 기사에서는 PHP와 Selenium을 사용하여 빠르고 효율적인 웹 크롤러를 만드는 방법을 소개합니다. 이를 수행하기 전에 몇 가지 기본 지식을 이해해야 합니다.

1. 설치 환경

시작하기 전에 PHP와 Selenium을 설치해야 합니다.

1. PHP 설치

Windows 환경에서는 XAMPP 또는 WAMP 소프트웨어 패키지를 다운로드하여 설치할 수 있으며, Mac 사용자는 MAMP 소프트웨어 패키지를 설치할 수 있습니다.

Linux 환경에서는 명령줄을 통해 PHP를 설치할 수 있습니다. 예를 들어 Ubuntu 시스템에서는 다음 명령을 통해 설치할 수 있습니다.

sudo apt-get install php7.0

설치 시 주의해야 할 점은 다음과 같습니다. PHP가 설치되었는지 확인해야 합니다(예: php-curl). 다음 명령을 실행하여 확장 프로그램이 설치되었는지 확인할 수 있습니다.

php -m | grep 컬

curl 확장 프로그램이 없으면 수동으로 설치해야 합니다.

2. Selenium 설치

Selenium을 설치하기 전에 JRE(Java Runtime Environment)를 설치해야 합니다.

Selenium 공식 웹사이트(https://www.selenium.dev/downloads/)에서 Selenium Server Standalone Edition을 다운로드할 수 있습니다.

다음 명령을 사용하여 Selenium 서버를 시작할 수 있습니다:

java -jar selenium-server-standalone-3.xx.x.jar

2. Selenium 및 PHP를 사용하여 웹 크롤러 구축

구축을 시작하기 전에 웹 크롤러를 사용하려면 알아야 할 몇 가지 기본 개념:

  1. WebDriver

WebDriver는 Selenium의 핵심 구성 요소이며 브라우저의 동작을 제어하는 ​​데 사용할 수 있습니다. WebDriver를 사용하면 브라우저를 자동으로 열고 닫을 수 있으며 사용자의 작업 동작을 시뮬레이션할 수 있습니다.

  1. Locator

Locator는 HTML 페이지에서 요소를 찾는 데 사용됩니다. Selenium에서 일반적으로 사용되는 위치 지정 방법에는 id, name, class, tagname, css, xpath 등이 포함됩니다.

  1. Action

Action은 클릭, 텍스트 입력, 마우스 가리키기 등과 같은 브라우저의 특정 사용자 동작을 나타냅니다.

이 예에서는 Selenium WebDriver 자동화 테스트 도구와 PHP 프로그래밍 언어를 사용하여 웹 크롤러를 만듭니다. 바이두(https://www.baidu.com)를 예로 들어 키워드를 검색하고 검색결과의 링크를 크롤링하겠습니다.

먼저 Composer를 사용하여 PHP 프로젝트에 Selenium WebDriver와 PHP WebDriver를 설치해야 합니다.

  1. Composer 구성

PHP 프로젝트를 만들기 전에 Composer(https://getcomposer.org/)를 설치하고 명령줄을 통해 새 PHP 프로젝트를 만들어야 합니다.

프로젝트 폴더에서 다음 명령을 사용하여 Selenium WebDriver 및 PHP WebDriver를 설치할 수 있습니다.

composer에는 facebook/webdriver가 필요합니다.

  1. 코드를 작성합니다.

프로젝트 폴더에 크롤링.php라는 새 파일을 만들고 편집합니다. 코드는 다음과 같습니다.

<?php
require_once('vendor/autoload.php');

use FacebookWebDriverRemoteDesiredCapabilities;
use FacebookWebDriverRemoteRemoteWebDriver;
use FacebookWebDriverWebDriverBy;
use FacebookWebDriverWebDriverKeys;

// 设置WebDriver
$host = 'http://localhost:4444/wd/hub';
$capabilities = DesiredCapabilities::chrome();
$driver = RemoteWebDriver::create($host, $capabilities, 5000);

// 打开百度
$driver->get('https://www.baidu.com');

// 搜索关键字
$search_box = $driver->findElement(WebDriverBy::id('kw'));
$search_box->sendKeys('Selenium');
$search_box->sendKeys(WebDriverKeys::ENTER);

// 等待页面加载完成
sleep(5);

// 抓取搜索结果链接
$elements = $driver->findElements(WebDriverBy::xpath('//div/h3/a'));
foreach ($elements as $element) {
    echo $element->getAttribute('href')."
";
}

// 关闭浏览器
$driver->quit();
?>

먼저 사용된 브라우저(여기서는 Chrome 브라우저가 사용됨)와 WebDriver 서비스 주소를 포함하여 웹드라이버를 설정해야 합니다.

다음으로 WebDriver를 사용하여 Baidu 홈페이지를 엽니다. ID로 Baidu 검색창을 찾고 Selenium이라는 키워드를 입력한 후 Enter 키를 눌러 검색을 제출합니다. 그런 다음 페이지가 로드되고 모든 검색 결과에 대한 링크를 얻을 때까지 기다립니다.

마지막으로 브라우저를 닫습니다.

  1. 코드 실행

명령줄에서 다음 명령을 실행하여 creep.php를 실행하고 검색 결과 링크를 가져옵니다.

php creep.php

3 요약

이 문서의 소개를 통해 PHP와 Selenium을 사용하여 간단한 웹 크롤러를 구축하는 방법을 배울 수 있습니다. Selenium WebDriver를 사용하면 사용자 작업을 시뮬레이션하여 더 나은 웹 크롤링 결과를 얻을 수 있습니다. 실제 응용 분야에서는 보다 정확하고 효율적인 데이터 크롤링을 달성하기 위해 필요에 따라 다양한 위치 지정 방법을 채택하고 작업 동작을 사용자 정의할 수 있습니다.

참고: 이 예제는 학습 참고용이며 불법적인 목적으로 사용이 금지됩니다.

위 내용은 빠르고 효율적인 웹 크롤러 만들기: PHP 및 Selenium 예제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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