Maison développement back-end tutoriel php Les programmeurs lisent-ils encore des romans avec des publicités ?

Les programmeurs lisent-ils encore des romans avec des publicités ?

May 06, 2020 pm 06:41 PM
程序员

Certaines personnes ont l'habitude de lire des romans, et lisent occasionnellement quelques chapitres. Ils sont tous publiés par Baidu, mais il y a fondamentalement des publicités très ennuyeuses. Soit ils ajoutent des liens vers le div global, et s'ils sont accidentellement touchés, ils le feront. sauter vers certains sites Web ou même des boucles infinies. Certaines applications mobiles ont aussi beaucoup de publicités, donc je n'ai rien d'autre à faire que d'écrire un petit programme pour éviter les ennuis des publicités

Cet article utilisera php. curl pour collecter la page simple_html_dom analyse pour obtenir une véritable suppression des publicités.

Recherchez un livre sur n'importe quel site Web de roman, mais ce site est particulièrement délicat sur les téléphones mobiles en raison des problèmes ci-dessus :

Les programmeurs lisent-ils encore des romans avec des publicités ?

Prenez simplement ceci Ce roman fera l'opération. (Avertissement : il ne s'agit certainement pas d'une promotion, d'une violation ou d'une suppression)

1. Comprendre la méthode d'obtention de curl

curl est un outil de ligne de commande qui télécharge ou télécharge via. les données URL spécifiées et afficher les données. Le c dans curl signifie client et URL est l'URL.

L'utilisation de cURL en PHP peut implémenter les méthodes de requête Get et Post

Les romans de saisie simples ne nécessitent que la méthode get.

L'exemple de code suivant est un exemple d'obtention du code HTML de la page du roman du premier chapitre via une requête get. Il vous suffit de modifier les paramètres d'URL.

Initialisation, options de paramétrage, vérification du certificat, exécution, arrêt

<?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);
?>
Copier après la connexion

Les commentaires sont particulièrement détaillés. Suivez les étapes pour envoyer une requête curl get. post request, alors vous devez ajouter un paramètre supplémentaire pour définir l'option de publication, transmettre les paramètres et enfin afficher les informations obtenues. Les résultats en cours d'exécution sont les suivants et il n'y a pas de rendu CSS.

Les programmeurs lisent-ils encore des romans avec des publicités ?

2. Analyser la page

La page de sortie contient beaucoup de contenu inutile, qui doit être extrait. de tout le contenu Pour obtenir le contenu dont nous avons besoin, comme le titre et le contenu de chaque chapitre, nous devons analyser la page.

Il existe de nombreuses façons d'analyser une page. Simple_html_dom est utilisé ici. Vous devez télécharger et référencer la classe simple_html_dom.php, l'objet d'instance et appeler des méthodes internes. Pour des méthodes spécifiques, vous pouvez consulter le site officiel ou d’autres documents sur le site chinois.

Analysez d'abord le code source de cette page de roman et regardez les éléments correspondant au titre et au contenu de ce chapitre

Le premier est le titre : sous h1 sous le nom du livre de classe

Les programmeurs lisent-ils encore des romans avec des publicités ?

Ensuite le contenu : sous le div avec l'identifiant du contenu

Les programmeurs lisent-ils encore des romans avec des publicités ?

simple_html_dom peut utiliser la recherche méthode, similaire à jquery Le sélecteur trouve l'élément positionné. Par exemple :

find('.bookname h1'); //Recherche l'élément de titre h1 sous la classe bookname

find('#content'); Recherchez le contenu du chapitre avec l'identifiant du contenu

Le code est ajouté en fonction de ce qui précède :

include "simple_html_dom.php";
$html = new simple_html_dom();
@$html->load($res);
$h1 = $html->find(&#39;.bookname h1&#39;);
foreach ($h1 as $k=>$v) {
	$artic[&#39;title&#39;] = $v->innertext;
}
// 查找小说的具体内容
$divs = $html->find(&#39;#content&#39;);
foreach ($divs as $k=>$v) {
	$content = $v->innertext;
}
// 正则替换去除多余部分
$pattern = "/(<p>.*?<\/p>)|(<div .*?>.*?<\/div>)/";
$artic[&#39;content&#39;] = preg_replace($pattern,&#39;&#39;,$content);
echo $artic[&#39;title&#39;].&#39;<br>&#39;;
echo $artic[&#39;content&#39;];
Copier après la connexion

Le contenu obtenu en utilisant la méthode d'analyse ci-dessus est un tableau, utilisez foreach Pour obtenir le contenu du tableau, un remplacement régulier est utilisé pour supprimer la publicité textuelle dans le texte, et le titre et le contenu du roman sont placés dans le tableau. La façon la plus simple de l'écrire est de le faire. Les résultats d'exécution sont les suivants :

Les programmeurs lisent-ils encore des romans avec des publicités ?

Bien sûr, cette façon d'écrire semble inconfortable, vous pouvez encapsuler vous-même la classe de fonctions. Ce qui suit est un exemple de code que j'ai écrit moi-même. Bien sûr, il y a certainement des lacunes, mais il peut être utilisé comme référence pour l'expansion.

<?php 
include "simple_html_dom.php";
include "mySpClass.php";
header("Content-Type:text/html;charset=utf-8");
$get_html = get_html($_GET[&#39;n&#39;]);
$artic = getContent($get_html);
echo $artic[&#39;title&#39;].&#39;<br>&#39;;
echo $artic[&#39;content&#39;];
/**
* 获取www.7kzw.com 获取每一章的页面html
* @param type $num 第几章,从第一开始(int)
* @return 返回字符串  
*/
function get_html($num){
	$start = 27248636;
	$real_num = $num+$start-1;
	$url = &#39;https://www.7kzw.com/85/85445/&#39;.$real_num.&#39;.html&#39;;
	$header = [
	&#39;User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0&#39;
	]; 
	return mySpClass()->getCurl($url,$header);
}
/**
* 获取www.7kzw.com小说标题数组
* @param type $get_html 得到的每一章的页面html
* @return 返回$artic数组,[&#39;title&#39;=>&#39;&#39;,&#39;content&#39;=>&#39;&#39;]
*/
function getContent($get_html){
	$html = new simple_html_dom();
	@$html->load($get_html);
	$h1 = $html->find(&#39;.bookname h1&#39;);
	foreach ($h1 as $k=>$v) {
		$artic[&#39;title&#39;] = $v->innertext;
	}
	// 查找小说的具体内容
	$divs = $html->find(&#39;#content&#39;);
	foreach ($divs as $k=>$v) {
		$content = $v->innertext;
	}
	// 正则替换去除多余部分
	$pattern = "/(<p>.*?<\/p>)|(<div .*?>.*?<\/div>)/";
	$artic[&#39;content&#39;] = preg_replace($pattern,&#39;&#39;,$content);
	return $artic;
}
?>
Copier après la connexion
rrree

Le résultat final de l'exemple de code ci-dessus : entrez le numéro dans le chapitre et transmettez les paramètres via $_GET['n']

Les programmeurs lisent-ils encore des romans avec des publicités ?

Résumé :

Points de connaissance : curl (astuces : le module curl collecte n'importe quelle classe php de page Web ), outil d'analyse régulier simple_html_dom

Bien que le La méthode d'écriture a été initialement améliorée, mais il est préférable de déployer votre propre serveur pour obtenir les meilleurs résultats. Sinon, vous ne pouvez le regarder que sur un ordinateur, ce qui n'est pas très pratique. Vous serez peut-être plus disposé à tolérer les publicités.

Ce qui précède contient les détails de l'utilisation de php curl pour collecter des pages et de l'utilisation de simple_html_dom pour les analyser. Pour plus d'informations, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quel programmeur IA est le meilleur ? Explorez le potentiel de Devin, Tongyi Lingma et de l'agent SWE Quel programmeur IA est le meilleur ? Explorez le potentiel de Devin, Tongyi Lingma et de l'agent SWE Apr 07, 2024 am 09:10 AM

Le 3 mars 2022, moins d'un mois après la naissance de Devin, le premier programmeur d'IA au monde, l'équipe NLP de l'Université de Princeton a développé un agent SWE pour programmeur d'IA open source. Il exploite le modèle GPT-4 pour résoudre automatiquement les problèmes dans les référentiels GitHub. Les performances de l'agent SWE sur l'ensemble de tests du banc SWE sont similaires à celles de Devin, prenant en moyenne 93 secondes et résolvant 12,29 % des problèmes. En interagissant avec un terminal dédié, SWE-agent peut ouvrir et rechercher le contenu des fichiers, utiliser la vérification automatique de la syntaxe, modifier des lignes spécifiques et écrire et exécuter des tests. (Remarque : le contenu ci-dessus est un léger ajustement du contenu original, mais les informations clés du texte original sont conservées et ne dépassent pas la limite de mots spécifiée.) SWE-A

Révéler l'attrait du langage C : découvrir le potentiel des programmeurs Révéler l'attrait du langage C : découvrir le potentiel des programmeurs Feb 24, 2024 pm 11:21 PM

Le charme de l'apprentissage du langage C : libérer le potentiel des programmeurs Avec le développement continu de la technologie, la programmation informatique est devenue un domaine qui a beaucoup attiré l'attention. Parmi les nombreux langages de programmation, le langage C a toujours été apprécié des programmeurs. Sa simplicité, son efficacité et sa large application font de l’apprentissage du langage C la première étape pour de nombreuses personnes souhaitant entrer dans le domaine de la programmation. Cet article discutera du charme de l’apprentissage du langage C et de la manière de libérer le potentiel des programmeurs en apprenant le langage C. Tout d’abord, le charme de l’apprentissage du langage C réside dans sa simplicité. Comparé à d'autres langages de programmation, le langage C

La manière exclusive de 520 programmeurs d'exprimer des sentiments romantiques ! Je ne peux pas refuser ! La manière exclusive de 520 programmeurs d'exprimer des sentiments romantiques ! Je ne peux pas refuser ! May 19, 2022 pm 03:07 PM

520 approche, et il est de nouveau là pour le spectacle annuel des chiens tourmenteurs ! Vous voulez voir comment le code le plus rationnel et la confession la plus romantique peuvent entrer en collision ? Passons en revue le code publicitaire le plus complet et le plus complet un par un pour voir si la romance des programmeurs peut conquérir le cœur de vos déesses ?

2023过年,又限制放烟花?程序猿有办法! 2023过年,又限制放烟花?程序猿有办法! Jan 20, 2023 pm 02:57 PM

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

Gagnez de l'argent en acceptant des emplois privés ! Une liste complète des plateformes de prise de commandes pour les programmeurs en 2023 ! Gagnez de l'argent en acceptant des emplois privés ! Une liste complète des plateformes de prise de commandes pour les programmeurs en 2023 ! Jan 09, 2023 am 09:50 AM

La semaine dernière, nous avons diffusé une émission d'assistance publique en direct sur « 2023PHP Entrepreneurship ». De nombreux étudiants ont posé des questions sur des plates-formes de prise de commandes spécifiques. Ci-dessous, le site Web chinois php a compilé 22 plates-formes relativement fiables à titre de référence !

que font les programmeurs que font les programmeurs Aug 03, 2019 pm 01:40 PM

Responsabilités professionnelles du programmeur : 1. Responsable de la conception détaillée, du codage, de l'organisation et de la mise en œuvre des tests internes des projets logiciels ; 2. Aider les gestionnaires de projet et le personnel associé à communiquer avec les clients et à entretenir de bonnes relations avec les clients ; analyse sexuelle de faisabilité, analyse de faisabilité technique et analyse de la demande ; 4. Familiarisé et compétent avec les technologies logicielles pertinentes pour la réalisation de projets logiciels développés par le département logiciel ; 5. Responsable de la rétroaction en temps opportun sur les situations de développement de logiciels au chef de projet ; dans le développement et la maintenance de logiciels Résoudre les problèmes techniques majeurs au cours du processus ; 7. Responsable de la formulation des documents techniques pertinents, etc.

Une brève analyse de la façon de télécharger et d'installer les versions historiques de VSCode Une brève analyse de la façon de télécharger et d'installer les versions historiques de VSCode Apr 17, 2023 pm 07:18 PM

Téléchargez et installez les versions historiques de VSCode Installation de VSCode Télécharger référence d'installation Installation de VSCode Version Windows : Windows10 Version VSCode : VScode1.65.0 (version utilisateur 64 bits) Cet article

Liste des meilleurs émulateurs de terminal Windows 11 en 2022 : Top 15 des recommandations Liste des meilleurs émulateurs de terminal Windows 11 en 2022 : Top 15 des recommandations Apr 24, 2023 pm 04:31 PM

Les émulateurs de terminal vous permettent d'émuler les fonctionnalités d'un terminal informatique standard. Avec lui, vous pouvez effectuer des transferts de données et accéder à un autre ordinateur à distance. Lorsqu'ils sont combinés à des systèmes d'exploitation avancés comme Windows 11, les possibilités créatives de ces outils sont infinies. Cependant, il existe de nombreux émulateurs de terminaux tiers. Il est donc difficile de choisir le bon. Mais, tout comme nous le faisons avec les applications incontournables de Windows 11, nous avons sélectionné les meilleurs terminaux que vous pouvez utiliser et augmenter votre productivité. Comment choisir le meilleur émulateur de terminal Windows 11 ? Avant de sélectionner les outils de cette liste, notre équipe d'experts les a d'abord testés pour vérifier leur compatibilité avec Windows 11. Nous les avons également vérifiés

See all articles