Maison développement back-end tutoriel php PHP抽取网页标题并剔除不相关的seo关键字_PHP教程

PHP抽取网页标题并剔除不相关的seo关键字_PHP教程

Jul 13, 2016 pm 05:44 PM
php seo 关键字 exister 场景 nous extrait 标题 de 网页

场景描述:

  过往我们在抽取网页标题的时候,都会直接抽取 之间的内容. 但实际情况是这样,例如javaeye 的一篇文章 http://www.iteye.com/news/21643 ,  的内容为 "10年软件开发教会我最重要的10件事 - 非技术 - ITeye资讯", 但实际引用中我们期望的标题应该为 "10年软件开发教会我最重要的10件事". 所以标题后面堆砌了很多不相关的关键字(应该是为了  seo 吧). 所以我们希望过滤掉这些关键字. 有下面的方法可以参考:


1. 查找 h1 等标签.(分析sina news 一些网站之后, 觉得不可行,会有很多干扰)

2. 从全文去标题后,将 之间的内容切割(按 _ | -)为 a1,a2,a3,a4,然后从最长的词组a3开始从全文查找. 如果查找成功,那么开始向左边迭代查询 a2,a1,直到查询失败为止 。左侧失败后,再继续向右迭代,同理. (这里我采用的是这种方法)


Php代码 
/** 
 * @author pqcc  
 * @date: 2011-06-18 
 * Description: 给定一个网页内容,提取网页的标题. 提取的标题不包括 seo 关键字. 
 * e.g: 一篇新闻标题的从直接抽取结果为 "大学英语四六级本周六开考 909万人参考_新浪教育_新浪网",  <br> *       但我们希望的结果是:"大学英语四六级本周六开考 909万人参考".  <br> * 适用范围:  文章最终页标题的提取, 不包括专题页等.  <br> */  <br>  <br>class TitlePurify{   <br>  <br>    private $matches_preg = [-_s|—];   <br>  <br>    function getTitle($contents){/*{{{*/  <br>        $preg = "/<title>]*>([w| ||W]*?)/i";  
        preg_match($preg, $contents, $matches);  
        if(count($matches)            return "标题抽取失败";  
        }  
        $title = $matches[1];  
        return $this->trimTitle($title, $contents);  
    }/*}}}*/ 
 
    function trimMeta($contents){/*{{{*/ 
        // 首先去除 内容, <meta> 内容.   <br>        $preg       = "/<title>]*>([w| ||W]*?)/i";  
        $contents   = preg_replace($preg, , $contents);  
        $preg       = "/]*>/i";  
        $contents   = preg_replace($preg, , $contents);  
        return $contents;  
    }/*}}}*/ 
 
 
    // 获取长度最长的 item 所处的index.  
    function getMaxIndex($titles){/*{{{*/ 
        $maxItemIndex   = 0;  
        $maxLength      = 0;  
        $loop           = 0;  
        foreach($titles as $item){  
            if(strlen($item)>$maxLength){  
                $maxLength      = strlen($item);  
                $maxItemIndex   = $loop;  
            }          
            $loop++;  
        }  
        return $maxItemIndex;  
    }/*}}}*/ 
 
    function trim($title, $titles, $contents, $maxItemIndex){/*{{{*/ 
        //@todo : 此处可优化contents  
        // 如果查找成功. result = tempTitle.   
        $tempTitle  = $titles[$maxItemIndex];  
        $result     = $tempTitle;  
        $count      = count($titles);  
        // while 从当前index 向左进行迭代(直到到达第一个或者匹配失败才中止).  
        $leftIndex  = $maxItemIndex-1;  
        while(true && $leftIndex>=0){  
            // tempTitle+左一个.  
            preg_match("/({$this->matches_preg}+{$tempTitle})/i", $title, $matches);  
            if(count($matches)>1){  
                // temp 用于匹配失败后,进行回滚.  
                $temp       = $titles[$leftIndex] . $matches[1];  
                $tempTitle  = $titles[$leftIndex] . $matches[1];  
                // 继续拿着 tempTitle 去匹配.  
                preg_match("/$tempTitle/i", $contents, $matches);  
                // 如果查找失败....  
                if(count($matches)                    $tempTitle = $temp;  
                    break;  
                }else{  
                    $result = $tempTitle;  
                }  
            }else{ // 正常情况下, 不会出现该情况.  
                break;  
            }  
            $leftIndex--;&

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/478770.htmlTechArticle场景描述: 过往我们在抽取网页标题的时候,都会直接抽取 之间的内容. 但实际情况是这样,例如javaeye 的一篇文章 http://www.iteye.com/news/2164...
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.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

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)

Configuration du projet CakePHP Configuration du projet CakePHP Sep 10, 2024 pm 05:25 PM

Dans ce chapitre, nous comprendrons les variables d'environnement, la configuration générale, la configuration de la base de données et la configuration de la messagerie dans CakePHP.

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Date et heure de CakePHP Date et heure de CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

Téléchargement de fichiers CakePHP Téléchargement de fichiers CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

Routage CakePHP Routage CakePHP Sep 10, 2024 pm 05:25 PM

Dans ce chapitre, nous allons apprendre les sujets suivants liés au routage ?

Discuter de CakePHP Discuter de CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

Comment configurer Visual Studio Code (VS Code) pour le développement PHP Comment configurer Visual Studio Code (VS Code) pour le développement PHP Dec 20, 2024 am 11:31 AM

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

CakePHP créant des validateurs CakePHP créant des validateurs Sep 10, 2024 pm 05:26 PM

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.

See all articles