从文本中提取规格列表(未知格式)
Extract specification list from text (unknown format)
我如何从未知格式的产品描述中提取规范(有时它是无序列表,有时它是 br-element 等)但它在前面看起来总是一样的。
视觉效果是这样的:
Some description text, somethimes it is one sentence, sometimes more..
== sometimes here's an empty line, sometimes is not ==
- spec item1
- spec item2
有没有办法在 PHP 中提取“通过视觉”?
示例:
<h2> desc <br>
<br>
> <strong> T Shirt</strong><br>
> Breathable mesh fabric<br>
> Reflective detail<br>
> Flat lock seams <br>
这可以通过 file_get_contents() 和一些正则表达式处理来完成。请确保在 PHP.ini (fopen URL wrappers)
中启用了正确的设置
参考:
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
您可以尝试过滤您的条目。我已经设法将您的示例放入数组中。结果会有点争论:
<?php
$html =<<<HTML
<h2> desc </h2>
<br>
> <strong> T Shirt</strong><br>
> Breathable mesh fabric<br>
> Reflective detail<br>
> 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',
)
我如何从未知格式的产品描述中提取规范(有时它是无序列表,有时它是 br-element 等)但它在前面看起来总是一样的。
视觉效果是这样的:
Some description text, somethimes it is one sentence, sometimes more..
== sometimes here's an empty line, sometimes is not ==
- spec item1
- spec item2
有没有办法在 PHP 中提取“通过视觉”?
示例:
<h2> desc <br>
<br>
> <strong> T Shirt</strong><br>
> Breathable mesh fabric<br>
> Reflective detail<br>
> Flat lock seams <br>
这可以通过 file_get_contents() 和一些正则表达式处理来完成。请确保在 PHP.ini (fopen URL wrappers)
中启用了正确的设置参考: 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
您可以尝试过滤您的条目。我已经设法将您的示例放入数组中。结果会有点争论:
<?php
$html =<<<HTML
<h2> desc </h2>
<br>
> <strong> T Shirt</strong><br>
> Breathable mesh fabric<br>
> Reflective detail<br>
> 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',
)