PHP identifica y recopila automáticamente el contenido del cuerpo del artículo del sitio web.

Al recopilar contenido en PHP, utilicé el componente de colección querylist, pero cuando este complemento recopila contenido de la página, debe escribir un selector de colección. Esto es más problemático: cada página de artículo debe especificar una regla de recopilación. Empecé a buscar un complemento que pudiera identificar y recopilar automáticamente el contenido de texto de la URL de cualquier artículo. Encontré un complemento que recopila etiquetas de contenido, divide cada etiqueta y puntúa para analizar el contenido de texto. A continuación se muestra la implementación. proceso y código.

Primero eche un vistazo a la captura de pantalla:
Insertar descripción de la imagen aquí
código de colección:

try{
    
    
            $ql = QueryList::get($url);
        }catch(RequestException $e){
    
    
            //print_r($e->getRequest());
            return json(['status'=>false,'msg'=>'Http Error:服务器错误,url不存在']);die;
        }
        //queryData 方法等同于  query()->getData()->all()
        //$query = $ql->rules($rules)->queryData();

        $title_rule = json_decode(htmlspecialchars_decode($title_rule),true);
        $content_rule = json_decode(htmlspecialchars_decode($content_rule),true);
        if($thumb_rule)
        $thumb_rule = json_decode(htmlspecialchars_decode($thumb_rule),true);
        $photos_range = htmlspecialchars_decode($photos_range);


        if(is_array($content_rule)&&is_array($title_rule))
        {
    
    
            $rules = [
                'title' => $title_rule,
                'seo_title' => ['title','text'],
                'keywords' => ['meta[name=keywords]','content'],
                'description' => ['meta[name=description]','content'],
                'content' => $content_rule,
                'thumb' => $thumb_rule
            ];

            if(empty($thumb_rule))
                unset($rules['thumb']);

        }
        else
        {
    
    
            $rules = [
                'title' => ['h1','text'],
                'seo_title' => ['title','text'],
                'keywords' => ['meta[name=keywords]','content'],
                'description' => ['meta[name=description]','content'],
                'content' => [$content_rule,'html','-a -ul -li -.group-post-list'],
                'thumb' => [$thumb_rule,'src']
            ];
        }

        $query =  $ql->rules($rules)->queryData();

Estas reglas de escritura deben establecerse para cada página. Es problemático. ¿Existe un componente que pueda identificar y recopilar automáticamente el contenido de texto de cualquier URL? Veamos primero el efecto. Solo necesita ingresar al sitio web de un
artículo y complemento que se utiliza principalmente para
Insertar descripción de la imagen aquí
identificar automáticamente el contenido del texto y recopilar código:

$html = file_get_contents($url);
$readability = new Readability(new Configuration());
$readability->parse($html);


$data['title'] = $readability->getTitle();
$data['seo_title'] = $readability->getTitle();

Supongo que te gusta

Origin blog.csdn.net/tianlu930/article/details/133221872
Recomendado
Clasificación