从文本中提取规格列表(未知格式)

时间:2018-11-12 08:46:24

标签: php text information-extraction

如何从产品说明中提取规格未知的规格(有时是无序列表,有时是br-element等),但总是在前面出现。

视觉效果就像:

  

一些描述文字,某些主题是一个句子,有时甚至更多。

     

==有时这是一个空行,有时不是==

     
      
  • 说明item1
  •   
  • 说明item2
  •   

有没有一种方法可以在PHP中“通过视觉提取”呢?

示例:

<h2> desc <br>
<br>
&gt; <strong> T Shirt</strong><br>
&gt; Breathable mesh fabric<br>
&gt; Reflective detail<br>
&gt; Flat lock seams <br>

2 个答案:

答案 0 :(得分:1)

您可以尝试过滤您的条目。我设法将您的示例放入数组。这样的话,结果就会有些争执:

<?php

$html =<<<HTML
<h2> desc </h2>
<br>
&gt; <strong> T Shirt</strong><br>
&gt; Breathable mesh fabric<br>
&gt; Reflective detail<br>
&gt; Flat lock seams <br>
HTML;

$no_html       = strip_tags($html);
$no_entities   = preg_replace('/&#?[a-z0-9]+;/i', '', $no_html);
$parts         = preg_split('/\R/', $no_entities);
$trimmed_parts = array_map('trim', $parts);
var_export($trimmed_parts);

输出:

array (
    0 => 'desc',
    1 => '',
    2 => 'T Shirt',
    3 => 'Breathable mesh fabric',
    4 => 'Reflective detail',
    5 => 'Flat lock seams',
)

答案 1 :(得分:0)

这可以通过file_get_contents()和一些正则表达式处理来完成。请确保已在PHP.ini(开放URL包装器)中启用了正确的设置

参考:     http://php.net/manual/en/filesystem.configuration.php

示例代码:

<?php

$page = file_get_contents('Provide your url here');

preg_match("/regex pattern here/", $page, $agent_name);

// display agent name matches
print_r($agent_name)

个人建议-使用python将简化此过程。许多软件包已经可以用于此目的。例如bs4