프로그래머들은 아직도 광고가 나오는 소설을 읽는다?
어떤 사람들은 소설을 읽는 데 익숙하고 가끔 몇 장을 읽습니다. 모두 Baidu에서 출판한 것이지만 기본적으로 매우 짜증나는 광고가 있거나 전체 div에 링크가 추가되어 있으면 바로 이동합니다. 일부 웹사이트나 무한 루프도 있습니다. 일부 휴대폰 앱에도 광고가 많아서 광고의 귀찮음을 피하기 위해 작은 프로그램을 작성하는 것 외에는 할 일이 없습니다
이 기사에서는 php 컬을 사용하여 simple_html_dom 페이지를 수집합니다. 그리고 그것을 분석하여 광고를 완전히 제거하세요.
노벨 웹사이트에서 책을 찾아보세요. 하지만 이 사이트는 휴대폰에서 특히 까다롭고 위와 같은 문제가 있습니다.
이 소설을 이용하여 수술을 합시다. (면책조항: 이는 절대 홍보, 침해 또는 삭제가 아닙니다.)
1. 컬의 get 메소드 이해
curl은 지정된 URL을 통해 데이터를 업로드 또는 다운로드하고 해당 데이터를 표시하는 명령줄 도구입니다. 컬의 c는 클라이언트를 의미하고 URL은 URL을 의미합니다.
PHP에서 cURL을 사용하면 Get 및 Post 요청 메서드를 구현할 수 있습니다.
간단한 소설 크롤링에는 get 메서드만 필요합니다.
다음 샘플 코드는 get 요청을 통해 첫 장 소설 페이지의 html을 가져오는 예입니다. URL 매개변수만 변경하면 됩니다.
초기화, 옵션 설정, 인증서 확인, 실행, 종료
<?php header("Content-Type:text/html;charset=utf-8"); $url="https://www.7kzw.com/85/85445/27248636.html"; $ch = curl_init($url); //初始化 //设置选项 curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//获取的信息以字符串返回,而不是直接输出(必须) curl_setopt($ch,CURLOPT_TIMEOUT,10);//超时时间(必须) curl_setopt($ch, CURLOPT_HEADER,0);// 启用时会将头文件的信息作为数据流输出。 //参数为1表示输出信息头,为0表示不输出 curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false); //不验证证书 // 3.执行 $res = curl_exec($ch); // 4.关闭 curl_close($ch); print_r($res); ?>
댓글은 특히 컬 가져오기 요청 보내기 단계에 따라 설정해야 합니다. post 옵션을 지정하고 매개변수를 전달하고 최종적으로 얻은 정보를 CSS 렌더링 없이 출력합니다.
2. 페이지 구문 분석
출력 페이지에는 각 장의 제목과 내용 등 모든 내용에서 불필요한 내용이 많이 포함되어 있습니다. 이 경우 페이지를 구문 분석해야 합니다.
페이지를 구문 분석하는 방법은 다양합니다. 여기서는 simple_html_dom.php 클래스, 인스턴스 객체를 다운로드하고 참조하고 내부 메서드를 호출해야 합니다. 구체적인 방법은 공식 홈페이지나 중국 홈페이지의 기타 문서를 확인하실 수 있습니다.
먼저 이 소설 페이지의 소스 코드를 분석하고 이 장의 제목과 내용에 해당하는 요소를 살펴보세요
첫 번째 제목은 클래스 책 이름 아래 h1입니다
그 다음 내용은 다음과 같습니다. 콘텐츠 ID 아래 div
simple_html_dom 아래에서 jquery와 유사한 찾기 메서드를 사용할 수 있으며 선택기를 사용하여 위치가 지정된 요소를 찾을 수 있습니다. 예:
find('.bookname h1'); //bookname 클래스 아래에서 h1 제목 요소를 찾습니다.
find('#content') //콘텐츠 ID가 있는 장 콘텐츠를 찾습니다.
코드는 다음과 같습니다. 위 내용을 바탕으로 다음이 추가되었습니다.
include "simple_html_dom.php"; $html = new simple_html_dom(); @$html->load($res); $h1 = $html->find('.bookname h1'); foreach ($h1 as $k=>$v) { $artic['title'] = $v->innertext; } // 查找小说的具体内容 $divs = $html->find('#content'); foreach ($divs as $k=>$v) { $content = $v->innertext; } // 正则替换去除多余部分 $pattern = "/(<p>.*?<\/p>)|(<div .*?>.*?<\/div>)/"; $artic['content'] = preg_replace($pattern,'',$content); echo $artic['title'].'<br>'; echo $artic['content'];
위 구문 분석 방법을 사용하여 얻은 내용은 배열 내용을 얻기 위해 foreach를 사용합니다. 텍스트를 입력하고 제목과 소설 내용을 배열에 넣습니다. 가장 간단한 작성 방법이 완성되었습니다. 실행 결과는 다음과 같습니다.
물론 이런 식으로 작성하는 것이 불편해 보이지만 함수 클래스를 직접 캡슐화할 수 있습니다. 다음은 제가 직접 작성한 코드 예시입니다. 물론 부족한 부분도 있지만 확장을 위한 참고자료로 활용 가능합니다.
<?php include "simple_html_dom.php"; include "mySpClass.php"; header("Content-Type:text/html;charset=utf-8"); $get_html = get_html($_GET['n']); $artic = getContent($get_html); echo $artic['title'].'<br>'; echo $artic['content']; /** * 获取www.7kzw.com 获取每一章的页面html * @param type $num 第几章,从第一开始(int) * @return 返回字符串 */ function get_html($num){ $start = 27248636; $real_num = $num+$start-1; $url = 'https://www.7kzw.com/85/85445/'.$real_num.'.html'; $header = [ 'User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0' ]; return mySpClass()->getCurl($url,$header); } /** * 获取www.7kzw.com小说标题数组 * @param type $get_html 得到的每一章的页面html * @return 返回$artic数组,['title'=>'','content'=>''] */ function getContent($get_html){ $html = new simple_html_dom(); @$html->load($get_html); $h1 = $html->find('.bookname h1'); foreach ($h1 as $k=>$v) { $artic['title'] = $v->innertext; } // 查找小说的具体内容 $divs = $html->find('#content'); foreach ($divs as $k=>$v) { $content = $v->innertext; } // 正则替换去除多余部分 $pattern = "/(<p>.*?<\/p>)|(<div .*?>.*?<\/div>)/"; $artic['content'] = preg_replace($pattern,'',$content); return $artic; } ?>
<?php class mySpClass{ //单例对象 private static $ins = null; /** * 单例化对象 */ public static function exec() { if (self::$ins) { return self::$ins; } return self::$ins = new self(); } /** * 禁止克隆对象 */ public function __clone() { throw new curlException('错误:不能克隆对象'); } // 向服务器发送最简单的get请求 public static function getCurl($url,$header){ // 1.初始化 $ch = curl_init($url); //请求的地址 // 2.设置选项 curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//获取的信息以字符串返回,而不是直接输出(必须) curl_setopt($ch,CURLOPT_TIMEOUT,10);//超时时间(必须) curl_setopt($ch, CURLOPT_HEADER,0);// 启用时会将头文件的信息作为数据流输出。 //参数为1表示输出信息头,为0表示不输出 curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false); //不验证证书 curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false); //不验证证书 if(!empty($header)){ curl_setopt($ch,CURLOPT_HTTPHEADER,$header);//设置头信息 } // 3.执行 $res = curl_exec($ch); // 4.关闭 curl_close($ch); return $res; } } //curl方法不存在就设置一个curl方法 if (!function_exists('mySpClass')) { function mySpClass() { return mySpClass::exec(); } } ?>
위 샘플 코드의 최종 실행 결과: 장에 있는 숫자를 입력하고 $_GET['n']
지식 포인트: 컬(팁:
curl 모듈 웹페이지 PHP 클래스 수집), 일반, 파싱 도구 simple_html_dom작성 방법은 처음에는 완벽했지만, 최고의 효과를 얻으려면 자체 서버를 배포하는 것이 가장 좋습니다. 그렇지 않으면 컴퓨터에서만 볼 수 있습니다. , 이는 그다지 편리하지 않습니다. , 광고를 더 기꺼이 용납할 수 있습니다.
위 내용은 php 컬을 사용하여 페이지를 수집하고 simple_html_dom을 사용하여 파싱하는 내용입니다. 자세한 내용은 php 중국어 사이트의 다른 관련 글을 참고해주세요!
위 내용은 프로그래머들은 아직도 광고가 나오는 소설을 읽는다?의 상세 내용입니다. 자세한 내용은 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)

뜨거운 주제











세계 최초의 AI 프로그래머 데빈(Devin)이 태어난 지 한 달도 채 안 된 2022년 3월 3일, 프린스턴 대학의 NLP팀은 오픈소스 AI 프로그래머 SWE-에이전트를 개발했습니다. GPT-4 모델을 활용하여 GitHub 리포지토리의 문제를 자동으로 해결합니다. SWE-bench 테스트 세트에서 SWE-agent의 성능은 Devin과 유사하며 평균 93초가 걸리고 문제의 12.29%를 해결합니다. SWE-agent는 전용 터미널과 상호 작용하여 파일 내용을 열고 검색하고, 자동 구문 검사를 사용하고, 특정 줄을 편집하고, 테스트를 작성 및 실행할 수 있습니다. (참고: 위 내용은 원문 내용을 약간 조정한 것이지만 원문의 핵심 정보는 그대로 유지되며 지정된 단어 수 제한을 초과하지 않습니다.) SWE-A

C 언어 학습의 매력: 프로그래머의 잠재력을 여는 것 지속적인 기술 발전으로 컴퓨터 프로그래밍은 많은 주목을 받는 분야가 되었습니다. 많은 프로그래밍 언어 중에서 C 언어는 항상 프로그래머들에게 사랑을 받아 왔습니다. C 언어의 단순성, 효율성 및 폭넓은 적용 덕분에 많은 사람들이 프로그래밍 분야에 입문하는 첫 번째 단계는 C 언어입니다. 이 기사에서는 C 언어 학습의 매력과 C 언어 학습을 통해 프로그래머의 잠재력을 발휘하는 방법에 대해 설명합니다. 우선, C 언어 학습의 매력은 단순함에 있습니다. C언어는 다른 프로그래밍 언어에 비해

520이 다가오고 있습니다. 그는 매년 열리는 개들을 괴롭히는 쇼를 위해 다시 여기에 왔습니다! 가장 이성적인 코드와 가장 로맨틱한 고백이 어떻게 충돌하는지 보고 싶으신가요? 프로그래머들의 로맨스가 여신들의 마음을 사로잡을 수 있을지 가장 완벽하고 완성도 높은 광고 코드를 하나씩 살펴볼까요?

本篇文章给大家介绍如何用前端代码实现一个烟花绽放的绚烂效果,其实主要就是用前端三剑客来实现,也就是HTML+CSS+JS,下面一起来看一下,作者会解说相应的代码,希望对需要的朋友有所帮助。

지난 주에 우리는 "2023PHP 창업"에 대한 공공 복지 생방송을 진행했습니다. 많은 학생들이 주문을 받기 위한 구체적인 플랫폼에 대해 문의했습니다. 아래 PHP 중국어 웹사이트는 참고용으로 비교적 신뢰할 수 있는 22개의 플랫폼을 정리했습니다!

프로그래머의 직무: 1. 소프트웨어 프로젝트의 내부 테스트의 세부 설계, 코딩, 구성 및 구현을 담당합니다. 2. 프로젝트 관리자 및 관련 인력이 고객과 소통하고 좋은 고객 관계를 유지하도록 지원합니다. 3. 수요 조사 및 프로젝트에 참여합니다. 타당성 성적 분석, 기술적 타당성 분석 및 수요 분석 4. 소프트웨어 부서에서 개발한 소프트웨어 프로젝트 제공을 위한 관련 소프트웨어 기술에 익숙하고 능숙합니다. 5. 소프트웨어 개발 상황에 대해 프로젝트 관리자에게 적시에 피드백을 제공할 책임이 있습니다. . 소프트웨어 개발 및 유지 관리에 참여합니다. 프로세스 중 주요 기술 문제를 해결합니다. 7. 관련 기술 문서 작성 등을 담당합니다.

VSCode의 이전 버전 다운로드 및 설치 VSCode 설치 다운로드 설치 참조 VSCode 설치 Windows 버전: Windows10 VSCode 버전: VScode1.65.0(64비트 사용자 버전) 이 문서

터미널 에뮬레이터를 사용하면 표준 컴퓨터 터미널의 기능을 에뮬레이트할 수 있습니다. 이를 통해 데이터 전송을 수행하고 원격으로 다른 컴퓨터에 액세스할 수 있습니다. Windows 11과 같은 고급 운영 체제와 결합하면 이러한 도구의 창의적인 가능성은 무한해집니다. 그러나 사용 가능한 타사 터미널 에뮬레이터가 많이 있습니다. 따라서 올바른 것을 선택하기가 어렵습니다. 그러나 Windows 11의 필수 앱과 마찬가지로 우리는 귀하가 사용하고 생산성을 높일 수 있는 최고의 터미널을 선택했습니다. 최고의 Windows 11 터미널 에뮬레이터를 어떻게 선택합니까? 이 목록에서 도구를 선택하기 전에 우리 전문가 팀은 먼저 Windows 11과의 호환성을 테스트했습니다. 우리도 확인해 봤는데
