Back to Question Center
0

Semalt : PHP 웹 페이지 스크래핑에 3 단계

1 answers:
웹 데이터 추출 또는 웹 수확이라고도하는 웹 스크래핑은

웹 사이트 또는 블로그에서 데이터를 추출하는 프로세스. 이 정보는 메타 태그, 메타 설명, 키워드 및 사이트 링크를 설정하는 데 사용되며 검색 엔진 결과의 전반적인 성능을 향상시킵니다.
  • 문서 파싱 - DOM (Document Object Model)으로 변환 된 XML 또는 HTML 문서를 포함한다 - colombia correo electronico. ) 파일. PHP는 훌륭한 DOM 확장 기능을 제공합니다.
  • 정규 표현식 - 웹 문서의 데이터를 정규 표현식으로 긁어 모으는 방법입니다.

타사 웹 사이트의 자료를 스크랩하는 문제는 귀하가이 데이터를 사용할 수있는 권한이 없기 때문에 저작권과 관련이 있습니다. 그러나 PHP를 사용하면 저작권이나 품질 저하 문제없이 쉽게 데이터를 다룰 수 있습니다. PHP 프로그래머로서 코딩 목적으로 다른 웹 사이트의 데이터가 필요할 수 있습니다. 여기서는 다른 사이트에서 데이터를 효율적으로 가져 오는 방법을 설명했지만, 그 전에는 index.php 또는 scrape.js 파일을 얻게 될 것입니다.

단계 1 : 웹 사이트 URL을 입력하기위한 양식 만들기 :

우선 제출 버튼을 클릭하고 데이터 스크래핑을위한 웹 사이트 URL을 입력하여 index.php에 양식을 작성해야합니다.



2 단계 : 웹 사이트 데이터를 가져 오기위한 PHP 함수 만들기 :

두 번째 단계는 scrape.php 파일에서 PHP 함수가 긁어 내면 데이터를 얻고 URL 라이브러리를 사용할 수 있습니다. 또한 문제없이 다른 서버 및 프로토콜에 연결하고 통신 할 수 있습니다..

function scrapeSiteData ($ website_url) {

if (! function_exists ( 'curl_init')) {

die ( 'cURL이 설치되어 있지 않습니다. ');

}

$ curl = curl_init

;

curl_setopt ($ curl, CURLOPT_URL, $ website_url);

curl_setopt ($ curl, CURLOPT_RETURNTRANSFER, true);

$ output = curl_exec ($ curl);

curl_close ($ curl);

return $ output;

}

여기서 PHP cURL이 제대로 설치되었는지 확인할 수 있습니다. 함수 영역에서는 세 개의 주요 cURL을 사용해야하고 curl_init

은 세션을 초기화하는 데 도움이되며 curl_exec

는이를 실행하고 curl_close

는 연결을 닫는 데 도움이됩니다. CURLOPT_URL과 같은 변수는 우리가 고칠 필요가있는 웹 사이트 URL을 설정하는 데 사용됩니다. 두 번째 CURLOPT_RETURNTRANSFER는 기본 양식이 아닌 변수 양식으로 긁힌 페이지를 저장하는 데 도움이되며 궁극적으로 전체 웹 페이지를 표시합니다.

Steps3 : 웹 사이트에서 특정 데이터 긁기 :

PHP 파일의 기능을 처리하고 웹 페이지의 특정 섹션을 다룰 차례입니다. 특정 URL의 모든 데이터를 원하지 않으면 CURLOPT_RETURNTRANSFER 변수를 사용하여 편집해야하며 스크래핑 할 섹션을 강조 표시해야합니다.

if (isset ($ _ POST [ 'submit'])) {

$ html = scrapeWebsiteData ($ _ POST [ 'website_url']);

$ start_point = strpos ($ html, 'Latest Posts');

$ end_point = strpos ($ html, '', $ start_point);

$ 길이 = $ end_point- $ start_point;

$ html = substr ($ html, $ start_point, $ length);

echo $ html;

}

이 코드를 사용하거나 특정 블로그 나 웹 사이트를 개인적인 용도로 사용하기 전에 PHP와 정규 표현식에 대한 기본 지식을 개발하는 것이 좋습니다.

December 8, 2017