Dede Collector PHP를 사용하여 간단한 콘텐츠 수집기를 만드는 원리 분석
며칠 전에 소설을 연재하는 프로그램을 만들었는데, 업데이트가 어려울까봐 팔로중문망에서 정보를 수집하는 방식으로 컬렉터를 작성했습니다. 기능이 비교적 간단하고 규칙을 맞춤 설정할 수 없습니다. , 그러나 일반적인 아이디어는 그 안에 있습니다. 규칙을 직접 확장할 수 있습니다.
PHP를 수집기로 사용하는 경우 주로 file_get_contents()와 preg_match_all() 두 가지 함수를 사용합니다. 전자는 웹 페이지 콘텐츠를 원격으로 읽는 데 사용되지만 후자는 일반 함수입니다. 필요한 콘텐츠를 추출합니다.
이제 단계별로 기능 구현에 대해 이야기해 보겠습니다.
소설을 수집하고 있기 때문에 먼저 책 제목, 작가, 장르를 추출해야 합니다. 기타 정보는 필요에 따라 추출할 수 있습니다.
여기의 목표는 "명나라로 돌아가 왕자가 된다"입니다. 먼저 참고문헌 페이지를 엽니다. 링크: http://www.86zw.com/Book/3727/Index.aspx
몇 개 엽니다. 더 많은 책을 찾을 수 있습니다. 책 제목의 기본 형식은 http://www.86zw.com/Book/书号/Index.aspx이므로 시작 페이지를 만들고 입력용 향후 수집해야 할 도서번호는 $_POST['number'] 형식으로 받아볼 수 있습니다. 도서 번호를 받은 후 다음으로 할 일은 참고문헌 페이지를 구성하는 것입니다: $url=http://www.86zw.com/Book/$_POST['number']/Index.aspx 물론입니다. 설명하기 쉽기 때문에 실제로 만들 때 $_POST['number'] 의 합법성을 확인하는 것이 가장 좋습니다.
URL을 구축한 후에는 도서 정보 수집을 시작할 수 있습니다. 참고문헌 페이지를 열려면 file_get_contents() 함수를 사용하십시오: $c 참고문헌 페이지를 열고 소스 파일을 보고 ""Return to the Ming Wang to Be a Prince""을 찾으십시오. 추출할 책의 제목입니다. 책 제목을 추출하는 정규식: /(.*?)/is, 책 제목을 추출하려면 preg_match_all() 함수를 사용하세요. preg_match_all("/< span class ="newstitle">(.*?)/is",$contents,$title); 이런 식으로 $title[0][0]의 내용은 우리가 원하는 제목입니다( preg_match_all 함수의 사용법은 Baidu에 가서 확인할 수 있습니다. 여기서는 자세히 설명하지 않겠습니다. 책 정보를 가져온 후 다음 단계는 장 콘텐츠를 가져오는 것입니다. 장 콘텐츠를 가져오기 위해 가장 먼저 해야 할 일은 각 장의 주소를 찾은 다음 원격으로 장을 열고 일반 규칙을 사용하여 콘텐츠를 가져오는 것입니다. 데이터베이스에 저장하거나 html 정적 파일을 직접 생성합니다. 장 목록의 주소는 다음과 같습니다: http://www.86zw.com/Html/Book/18/3727/List.shtm 참고문헌 페이지와 동일하며 다음과 같은 규칙이 있음을 알 수 있습니다. 찾을 수 있습니다: http://www .86zw.com/Html/Book/Classification Number/Book Number/List.shtm. 도서 번호는 이전에 얻었습니다. 여기서 핵심은 분류 번호를 찾는 것입니다. 분류 번호는 이전 서지 페이지에서 찾을 수 있습니다.
preg_match_all("/Html/Book/[0-9) ]{1,}/[0 -9]{1,}/List.shtm/is",$contents,$typeid); 이것만으로는 충분하지 않습니다. 잘라내기 기능도 필요합니다.
PHP 코드는 다음과 같습니다. 다음:
함수 잘라내기($string,$start ,$end){
$message = 폭발($start,$string)
$message = 폭발($end,$message[1]) ; return $message[0];}여기서 $string은 잘라낼 내용의 경우 $start가 시작점이고 $end가 끝점입니다. 분류 번호 가져오기:
$start = "Html/Book/";
$end
= "List.shtm"
$typeid = cut($typeid[0][0], $ start,$end);
$typeid =explore("/",$typeid);[/php]
이렇게 $typeid[0]가 우리가 찾고 있는 분류번호입니다. 다음 단계는 챕터 목록의 주소를 구성하는 것입니다: $chapterurl = http://www.86zw.com/Html/Book/.$typeid[0]/$_POST['number']/List.shtm. 이를 통해 각 장의 주소를 찾을 수 있습니다.
$ustart = """;
$uend
= """;
//t는 제목의 약어를 나타냅니다
$tstart = ">" ;
$tend
= "<"; ]{1,}.(shtm)"/is",$chapterurl,$url);
//제1장 선한 사람들의 9개 세계
preg_match_all("/< a href="[0-9]{ 1,}.shtm"(.*?)/is",$file,$title);
$count = count($url[0] );
for($i= 0;$i<=$count;$i )
{
$u = cut($url[0][$i],$ustart,$uend) ;
$t = cut($ title[0][$i],$tstart,$tend)
$array[$u] = $t
} $array 배열 는 모든 챕터 주소입니다. 여기에서 수집 프로세서는 절반만 완료되었으며 나머지는 각 챕터 주소를 반복하여 읽은 다음 내용을 일치시키는 것입니다. 이는 비교적 간단하므로 여기서는 자세히 설명하지 않습니다. 자, 오늘은 이만 마치겠습니다. 이렇게 긴 글은 처음이라 언어 구성에 문제가 있을 수 있으니 양해 부탁드립니다.
위 내용은 Dede Collector의 내용을 포함하여 간단한 Content Collector를 만들기 위해 PHP를 이용한 Dede Collector의 원리 분석을 소개한 것입니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되길 바랍니다.

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Alipay PHP ...

JWT는 주로 신분증 인증 및 정보 교환을 위해 당사자간에 정보를 안전하게 전송하는 데 사용되는 JSON을 기반으로 한 개방형 표준입니다. 1. JWT는 헤더, 페이로드 및 서명의 세 부분으로 구성됩니다. 2. JWT의 작업 원칙에는 세 가지 단계가 포함됩니다. JWT 생성, JWT 확인 및 Parsing Payload. 3. PHP에서 인증에 JWT를 사용하면 JWT를 생성하고 확인할 수 있으며 사용자 역할 및 권한 정보가 고급 사용에 포함될 수 있습니다. 4. 일반적인 오류에는 서명 검증 실패, 토큰 만료 및 대형 페이로드가 포함됩니다. 디버깅 기술에는 디버깅 도구 및 로깅 사용이 포함됩니다. 5. 성능 최적화 및 모범 사례에는 적절한 시그니처 알고리즘 사용, 타당성 기간 설정 합리적,

세션 납치는 다음 단계를 통해 달성 할 수 있습니다. 1. 세션 ID를 얻으십시오. 2. 세션 ID 사용, 3. 세션을 활성 상태로 유지하십시오. PHP에서 세션 납치를 방지하는 방법에는 다음이 포함됩니다. 1. 세션 _regenerate_id () 함수를 사용하여 세션 ID를 재생산합니다. 2. 데이터베이스를 통해 세션 데이터를 저장하십시오.

PHP 개발에서 견고한 원칙의 적용에는 다음이 포함됩니다. 1. 단일 책임 원칙 (SRP) : 각 클래스는 하나의 기능 만 담당합니다. 2. Open and Close Principle (OCP) : 변경은 수정보다는 확장을 통해 달성됩니다. 3. Lisch의 대체 원칙 (LSP) : 서브 클래스는 프로그램 정확도에 영향을 미치지 않고 기본 클래스를 대체 할 수 있습니다. 4. 인터페이스 격리 원리 (ISP) : 의존성 및 사용되지 않은 방법을 피하기 위해 세밀한 인터페이스를 사용하십시오. 5. 의존성 반전 원리 (DIP) : 높고 낮은 수준의 모듈은 추상화에 의존하며 종속성 주입을 통해 구현됩니다.

phpstorm에서 CLI 모드를 디버그하는 방법은 무엇입니까? PHPStorm으로 개발할 때 때때로 CLI (Command Line Interface) 모드에서 PHP를 디버그해야합니다 ...

시스템이 다시 시작된 후 UnixSocket의 권한을 자동으로 설정하는 방법. 시스템이 다시 시작될 때마다 UnixSocket의 권한을 수정하려면 다음 명령을 실행해야합니다.

정적 바인딩 (정적 : :)는 PHP에서 늦은 정적 바인딩 (LSB)을 구현하여 클래스를 정의하는 대신 정적 컨텍스트에서 호출 클래스를 참조 할 수 있습니다. 1) 구문 분석 프로세스는 런타임에 수행됩니다. 2) 상속 관계에서 통화 클래스를 찾아보십시오. 3) 성능 오버 헤드를 가져올 수 있습니다.

기사는 입력 유효성 검사, 인증 및 정기 업데이트를 포함한 취약점을 방지하기 위해 프레임 워크의 필수 보안 기능을 논의합니다.
