인터넷의 지속적인 발전으로 인해 웹 페이지에서 점점 더 많은 데이터를 얻어야 합니다. 정보를 읽기 위해 웹 페이지를 수동으로 검색하는 것과 달리 크롤러 기술은 자동으로 데이터를 얻을 수 있습니다. 크롤러 기술에서 Selenium은 웹 페이지에서 작업하는 사용자를 시뮬레이션하고 웹 페이지에서 데이터를 얻을 수 있는 자동화된 테스트 도구입니다. 이 기사에서는 PHP와 Selenium을 사용하여 크롤러 기능을 구현하는 방법을 소개합니다.
Selenium은 웹 페이지에서 입력, 클릭, 스크롤 등 모든 사용자 작업을 시뮬레이션하고 웹 페이지에서 데이터를 얻을 수도 있는 자동화된 테스트 도구입니다. Selenium은 Chrome, Firefox, Edge 등과 같은 여러 브라우저를 지원할 수 있으며 다양한 언어를 사용하여 테스트 스크립트를 작성할 수 있습니다. 크롤러 기술에서 Selenium은 웹 페이지를 운영하는 사용자를 시뮬레이션하고 웹 페이지에서 데이터를 크롤링할 수 있습니다.
Selenium을 크롤러 개발에 사용하기 전에 Chrome의 브라우저 드라이버와 같이 Selenium을 지원하는 브라우저 드라이버를 설치해야 합니다. Selenium 공식 홈페이지에서 최신 버전의 Chrome 드라이버를 다운로드하여 설치할 수 있습니다.
다음으로 php-webdriver와 같은 PHP 및 관련 확장을 로컬에 설치해야 합니다. 아래와 같이 Composer를 사용하여 설치할 수 있습니다.
composer require php-webdriver/webdriver
크롤러 개발을 위해 Selenium을 사용하는 첫 번째 단계는 데이터를 크롤링해야 하는 웹페이지를 여는 것입니다. 웹 페이지의 제목을 가져와야 한다고 가정하면 다음 단계를 수행할 수 있습니다.
<?php require_once 'vendor/autoload.php'; use FacebookWebDriverRemoteDesiredCapabilities; use FacebookWebDriverRemoteRemoteWebDriver; // 启动Chrome浏览器 $capabilities = DesiredCapabilities::chrome(); $driver = RemoteWebDriver::create('http://localhost:9515', $capabilities); // 打开需要抓取数据的网页 $driver->get('https://www.example.com'); // 获取网页标题 $title = $driver->getTitle(); echo $title; // 关闭浏览器 $driver->quit();
코드 분석:
require_once
를 사용하여 필요한 클래스 라이브러리 파일을 도입합니다. require_once
引入需要的类库文件。DesiredCapabilities
创建浏览器驱动程序,指定使用Chrome浏览器。RemoteWebDriver::create
启动一个Chrome浏览器并连接到Selenium服务器。get
方法打开需要抓取数据的网页。getTitle
方法获取网页标题。quit
方法关闭Chrome浏览器。在实际爬虫开发中,我们可能需要在网页中进行登录,才能获取到需要的数据。以下为登录某网站并抓取数据的示例代码:
<?php require_once 'vendor/autoload.php'; use FacebookWebDriverRemoteDesiredCapabilities; use FacebookWebDriverRemoteRemoteWebDriver; use FacebookWebDriverWebDriverBy; // 启动Chrome浏览器 $capabilities = DesiredCapabilities::chrome(); $driver = RemoteWebDriver::create('http://localhost:9515', $capabilities); // 打开登录页面 $driver->get('https://www.example.com/login'); // 输入账号密码并登录 $accountInput = $driver->findElement(WebDriverBy::id('account')); $passwordInput = $driver->findElement(WebDriverBy::id('password')); $submitButton = $driver->findElement(WebDriverBy::id('submit')); $accountInput->sendKeys('your_username'); $passwordInput->sendKeys('your_password'); $submitButton->click(); // 等待登录成功并打开需要抓取数据的页面 $driver->wait(10)->until( WebDriverExpectedCondition::titleContains('Homepage') ); $driver->get('https://www.example.com/data'); // 获取数据 $data = $driver->findElement(WebDriverBy::cssSelector('.data'))->getText(); echo $data; // 关闭浏览器 $driver->quit();
代码解析:
require_once
引入需要的类库文件。DesiredCapabilities
创建浏览器驱动程序,指定使用Chrome浏览器。RemoteWebDriver::create
启动一个Chrome浏览器并连接到Selenium服务器。get
方法打开需要登录的页面。findElement
方法通过账号和密码的input元素的id获取对应的WebElement对象,并分别调用sendKeys
方法传入账号密码进行输入。findElement
方法通过提交按钮的id获取对应的WebElement对象,并调用click
方法进行点击,完成登录操作。wait
方法等待页面跳转后的标题包含Homepage
。get
方法打开需要抓取数据的页面。findElement
方法通过CSS选择器获取对应的WebElement对象,并使用getText
方法获取文本内容。quit
DesiredCapability
를 사용하여 브라우저 드라이버를 생성하고 Chrome 브라우저를 지정하세요. RemoteWebDriver::create
를 사용하여 Chrome 브라우저를 실행하고 Selenium 서버에 연결하세요.
get
메소드를 사용하여 데이터를 캡처해야 하는 웹페이지를 엽니다. 웹페이지 제목을 얻으려면 getTitle
메소드를 사용하세요.
quit
메소드를 사용하여 Chrome 브라우저를 닫습니다. 🎜🎜🎜간단한 예: 웹페이지에 로그인하고 데이터를 크롤링합니다🎜🎜실제 크롤러 개발에서는 필요한 데이터를 얻기 위해 웹페이지에 로그인해야 할 수도 있습니다. 다음은 웹사이트에 로그인하고 데이터를 가져오기 위한 샘플 코드입니다. 🎜rrreee🎜코드 분석: 🎜🎜🎜먼저 require_once
를 사용하여 필요한 클래스 라이브러리 파일을 도입합니다. 🎜🎜 DesiredCapability
를 사용하여 브라우저 드라이버를 생성하고 Chrome 브라우저를 지정하세요. 🎜🎜RemoteWebDriver::create
를 사용하여 Chrome 브라우저를 실행하고 Selenium 서버에 연결하세요. 🎜🎜로그인이 필요한 페이지를 열려면 get
메소드를 사용하세요. 🎜🎜findElement
메소드를 사용하여 계정 및 비밀번호 입력 요소의 ID를 통해 해당 WebElement 객체를 얻고, sendKeys
메소드를 호출하여 계정 비밀번호를 전달합니다. 입력용. 🎜🎜제출 버튼의 ID를 통해 해당 WebElement 객체를 얻으려면 findElement
메소드를 사용하고, click
메소드를 호출하여 클릭하면 로그인 작업이 완료됩니다. 🎜🎜페이지 이동 후 제목에 홈페이지
가 포함될 때까지 기다리려면 wait
메서드를 사용하세요. 🎜🎜 get
메소드를 사용하여 데이터를 캡처해야 하는 페이지를 엽니다. 🎜🎜CSS 선택기를 통해 해당 WebElement 개체를 얻으려면 findElement
메서드를 사용하고, 텍스트 콘텐츠를 얻으려면 getText
메서드를 사용하세요. 🎜🎜획득한 데이터를 출력합니다. 🎜🎜마지막으로 quit
메소드를 사용하여 Chrome 브라우저를 닫습니다. 🎜🎜🎜위는 샘플 코드입니다. 실제 개발 시 특정 웹사이트의 페이지 구조와 요소 ID에 따라 수정이 필요합니다. 🎜🎜요약🎜🎜이 문서에서는 크롤러 개발을 위해 PHP와 Selenium을 사용하는 방법을 소개하고 웹 페이지 제목 가져오기 및 크롤링 데이터 로그인이라는 두 가지 측면의 예제 데모를 제공합니다. 자동화된 테스트 도구인 Selenium은 웹 페이지에서 사용자 작업을 시뮬레이션하고, 웹 페이지에서 데이터 캡처를 용이하게 하며, 다른 자동화된 테스트 시나리오에서도 사용할 수 있습니다. Selenium 사용법을 익히면 기술 수준과 작업 효율성을 향상시킬 수 있습니다. 🎜위 내용은 크롤러 개발 및 구현: PHP 및 Selenium 실무 전략의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!