>  기사  >  백엔드 개발  >  PHP 크롤링 페이지의 여러 방법에 대한 자세한 설명

PHP 크롤링 페이지의 여러 방법에 대한 자세한 설명

怪我咯
怪我咯원래의
2017-07-09 09:28:191585검색

이 글은 PHP에서 페이지를 크롤링하는 여러 가지 방법에 대한 자세한 분석 및 소개입니다. 필요한 친구가 참고하면 됩니다.

일부 날씨 예보 또는 RSS 구독 프로그램을 수행할 때 로컬이 아닌 파일을 크롤링해야 하는 경우가 종종 있습니다. 일반적인 상황에서는 PHP를 사용하여 브라우저 액세스를 시뮬레이션하고, HTTP 요청을 통해 URL 주소에 액세스한 다음, 데이터를 직접 추출할 수 없는 경우가 있습니다. 그런 다음 형식을 지정하면 보다 친숙한 접근 방식이 나타납니다.
다음은 PHP 크롤링 페이지의 여러 방법과 원리에 대한 간략한 소개입니다.
1. PHP 크롤링 페이지의 주요 방법:
1. file() 함수
file_get_contents() 함수 3 . fopen()->fread()->fclose() 모드
4.curl 메서드
5. fsockopen() 함수 소켓 모드
6. 플러그인 사용(예: http://sourceforge.net/) projects/snoopy/ )


2. PHP가 html 또는 xml 코드를 구문 분석하는 주요 방법:
1.file() 함수

코드는 다음과 같습니다.

<?php 
$url=&#39;http://t.qq.com&#39;; 
$lines_array=file($url); 
$lines_string=implode(&#39;&#39;,$lines_array); 
echo htmlspecialchars($lines_string);

2. 함수
file_get_contents 및 fopen을 사용하여 필요한 공간인 Allow_url_fopen을 엽니다. 방법: php.ini를 편집하고 Allow_url_fopen = On으로 설정하세요.allow_url_fopen이 꺼지면 fopen이나 file_get_contents 모두
원격 파일을 열 수 없습니다.

코드는 다음과 같습니다.

<?php 
$url=&#39;http://t.qq.com&#39;; 
$lines_string=file_get_contents($url); 
echo htmlspecialchars($lines_string);

3.fopen()->fread()->fclose() 모드


코드는 다음과 같습니다.

<?php 
$url=&#39;http://t.qq.com&#39;; 
$handle=fopen($url,"rb"); 
$lines_string=""; 
do{ 
    $data=fread($handle,1024);
     if(strlen($data)==0) {
        break;
    } 
    $lines_string.=$data; 
}while(true); 
fclose($handle); 
echo htmlspecialchars($lines_string);

4. 컬을 열어 컬을 만듭니다. 방법: Windows에서 php.ini를 수정하고 Extension=php_curl.dll 앞의 세미콜론을 제거한 다음 ssleay32.dll 및 libeay32.dll을 C:WINDOWSsystem32에 복사하여 Linux에서 컬 확장을 설치합니다.
코드는 다음과 같습니다.

<?php 
$url=&#39;http://t.qq.com&#39;; 
$ch=curl_init(); 
$timeout=5; 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
$lines_string=curl_exec($ch); 
curl_close($ch); 
echo htmlspecialchars($lines_string);

5.fsockopen() 함수 소켓 모드

소켓 모드가 올바르게 실행될 수 있는지 여부는 서버 설정과도 관련이 있습니다. phpinfo
를 통해 내 로컬 PHP 소켓에는 http가 활성화되어 있지 않으므로 udp를 통해서만 테스트할 수 있습니다.
코드는 다음과 같습니다.

<?php                                                                                                                                                
$fp = fsockopen("udp://127.0.0.1", 13, $errno, $errstr);
if (!$fp) { 
    echo "ERROR: $errno - $errstr<br />\n"
} else { 
    fwrite($fp, "\n")
    echo fread($fp, 26)
    fclose($fp)
}

6.플러그인

스누피 플러그인은 온라인에서 찾을 수 있습니다.

위 내용은 PHP 크롤링 페이지의 여러 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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