간단한 PHP 크롤러 만들기
웹사이트를 크롤링하고 데이터를 추출하는 것은 웹 프로그래밍의 일반적인 작업입니다. PHP는 크롤러 구축을 위한 유연한 프레임워크를 제공하므로 원격 웹페이지에서 정보에 액세스하고 검색할 수 있습니다.
특정 웹페이지에서 링크와 콘텐츠를 수집하는 간단한 PHP 크롤러를 만들려면 다음 접근 방식을 활용할 수 있습니다. :
DOM 파서 사용:
<?php function crawl_page($url, $depth = 5) { // Prevent endless recursion and circular references static $seen = array(); if (isset($seen[$url]) || $depth === 0) { return; } // Mark the URL as seen $seen[$url] = true; // Load the web page using DOM $dom = new DOMDocument('1.0'); @$dom->loadHTMLFile($url); // Iterate over all anchor tags (<a>) $anchors = $dom->getElementsByTagName('a'); foreach ($anchors as $element) { $href = $element->getAttribute('href'); // Convert relative URLs to absolute URLs if (0 !== strpos($href, 'http')) { $path = '/' . ltrim($href, '/'); if (extension_loaded('http')) { $href = http_build_url($url, array('path' => $path)); } else { $parts = parse_url($url); $href = $parts['scheme'] . '://'; if (isset($parts['user']) && isset($parts['pass'])) { $href .= $parts['user'] . ':' . $parts['pass'] . '@'; } $href .= $parts['host']; if (isset($parts['port'])) { $href .= ':' . $parts['port']; } $href .= dirname($parts['path'], 1) . $path; } } // Recursively crawl the linked page crawl_page($href, $depth - 1); } // Output the crawled page's URL and content echo "URL: " . $url . PHP_EOL . "CONTENT: " . PHP_EOL . $dom->saveHTML() . PHP_EOL . PHP_EOL; } crawl_page("http://example.com", 2); ?>
이 크롤러는 DOM 파서를 사용하여 웹페이지의 HTML을 탐색하고 모든 앵커 태그를 식별하며 모든 링크를 따릅니다. 그들은 포함하고 있습니다. 링크된 페이지의 내용을 수집하여 표준 출력에 덤프합니다. 이 출력을 텍스트 파일로 리디렉션하여 수집된 데이터를 로컬에 저장할 수 있습니다.
추가 기능:
위 내용은 웹사이트에서 링크와 콘텐츠를 추출하는 간단한 PHP 크롤러를 어떻게 구축합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!