>백엔드 개발 >PHP 튜토리얼 >PHP는 Baidu 검색 결과 크롤링을 구현하고 데이터 구조를 분석합니다.

PHP는 Baidu 검색 결과 크롤링을 구현하고 데이터 구조를 분석합니다.

PHP中文网
PHP中文网앞으로
2020-09-24 18:04:036351검색

PHP는 Baidu 검색 결과 크롤링을 구현하고 데이터 구조를 분석합니다.

추천: "PHP 비디오 튜토리얼"

PHP 웹 크롤러 연습: Baidu 검색 결과 크롤링 및 데이터 구조 분석

Baidu의 검색 엔진에는 크롤러 방지 메커니즘이 있습니다. 먼저 guzzle로 물을 직접 시도했습니다. 코드는 다음과 같습니다.

<?php
/**
 * Created by Benjiemin
 * Date: 2020/3/5
 * Time: 14:58
 */
require (&#39;./vendor/autoload.php&#39;);
use QL\QueryList;
//进入网页
$jar = new \GuzzleHttp\Cookie\CookieJar;
$client = new GuzzleHttp\Client([&#39;cookies&#39; => true]);
$ql = $client->request(&#39;GET&#39;, &#39;https://www.baidu.com&#39;, [
    &#39;cookies&#39; => $jar
]);
if($ql->getStatusCode()!=200){
    echo &#39;网站状态不正常&#39;;die;
}
echo  $ql->getBody();

PHP는 Baidu 검색 결과 크롤링을 구현하고 데이터 구조를 분석합니다.

바이두가 직접 가로채서 점프 페이지로 들어갔습니다. 브라우저 헤더 파일을 추가해서 다시 시도해보겠습니다.

수정된 헤더는 다음과 같습니다.

$ql = $client->request(&#39;GET&#39;, &#39;https://www.baidu.com&#39;, [
    &#39;cookies&#39; => $jar,
    &#39;headers&#39; => [
    &#39;Accept-Encoding&#39; => &#39;gzip, deflate, br&#39;,
    &#39;Accept&#39;     => &#39;text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8&#39;,
    &#39;Accept-Language&#39;      => &#39;zh-CN,zh;q=0.9,en;q=0.8&#39;,
    &#39;Cache-Control&#39;      => &#39;no-cache&#39;,
    &#39;Connection&#39;      => &#39;keep-alive&#39;,
    &#39;User-Agent&#39;      => &#39;Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36&#39;,
]
]);

테스트 해보니 홈페이지가 열렸습니다.

PHP는 Baidu 검색 결과 크롤링을 구현하고 데이터 구조를 분석합니다.

계속해서 키워드를 입력하고 검색해보니 보안에 가로채는 걸 발견해서 GuzzleHttp로는 직접 할 수 없을 것 같아 아티팩트인 jaeger/querylist 및 jaeger/를 계속 진행했습니다. 쿼리리스트-인형사.

설치 단계:

1. 종속성 설치

이전에 PHP의 proc_open 기능을 활성화해야 합니다. 그렇지 않으면 전체 설치를 완료할 수 없습니다.

composer install jaeger/querylist
composer install jaeger/querylist-puppeteer

2. npm

4을 설치합니다. @nesk /puphpeteer

yum install nodejs

5.PHP를 설치하면 proc_open

이 활성화됩니다. 코드는 다음과 같습니다.

npm install @nesk/puphpeteer

$rt는 내 결과 집합입니다. 다음과 같이 인쇄하세요

PHP는 Baidu 검색 결과 크롤링을 구현하고 데이터 구조를 분석합니다.

위 내용은 PHP는 Baidu 검색 결과 크롤링을 구현하고 데이터 구조를 분석합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제