在PHP中创建一个单词抓取工作

时间:2012-07-30 07:20:08

标签: php curl

我想使用PHP创建一个作业,它能够遍历字典并将其中的所有单词复制到我的数据库中。这是我唯一的要求。

As I asked here,我正在寻找一些可以完成这项工作的API。但我没有找到任何好的API,看起来像其他人没有。因此,唯一的可能性就是创建一个工作,例如,以某种方式得到某个网站的所有单词,如dict.cc或其他东西。

我怎么能开始建立这样的工作?我需要注意什么?为了这个目的,你对概念有任何意见或想法吗?

感谢您的投入!

2 个答案:

答案 0 :(得分:1)

您可以使用PERL或curl脚本来编写数据。在http://www.duden.de词典网站中,使用以下简单的想法

http://www.duden.de/suchen/dudenonline/

用搜索词替换“ word ”这个词。例如,如果你想获得汽车这个词的含义,那么网址必须如下

http://www.duden.de/suchen/dudenonline/

因此,我们必须找到目标网址并划分数据。 Perl Script比curl更好。我不知道脚本..你只是谷歌它如何开发perl脚本来编写数据..

希望这些信息对你有用。

答案 1 :(得分:1)

为此,您可以创建一种dictionary以下格式(例如):

sauna, stoombad|Sauna
fitnessruimte|Fitnessroom
air-conditioning, airconditioning|Air Conditioning
wifi, wlan, internet, adsl, internettoegang|Internet
open haard|Open fire
tv|Television
sat, sat-tv|Satelite
afwasmachine|Vaatwasser
magnetron, combimagnetron|Microwave
oven, mini-oven|Oven
kluis|Safe
koelkast, koel-/vriescombinatie|Frige
koffiemachine|Coffemachine
diepvriezer|Freezer

比您应该将file更改为array,将explode更改为valuesmain word,例如:

foreach ($dictionary as $key => $value) {
  list($values, $option) = explode('|', $value);
  $values = explode(',', $values);
  $dictionary[$key] = array('option' => trim($option), 'values' => $values);
}

使用以下方法检索所需的效果(您也可以使用array_walk()并对每个项目应用单独的功能来执行相同的操作):

foreach ($dictionary[$key]['values'] as $index => $value)
  $itemValues[$index] = '\b'.str_replace(array('/'), array('\/'), trim($value)).'\b'; // adding word boundary to each element and escaping slashes for regexp

使用读取值数组组成RegExp pattern来搜索特定的单词集。

$pattern = '/'.implode('|', $itemValues).'/i'; // composing RegExpr pattern with case-insensitive option

使用此pattern,您可以preg_match任何文字。如果文本中存在任何单词,例如air-conditioningairconditioningpreg_match将返回true,您将知道Air Conditioning(词典中|之后的字词)可用于文本。您针对文本对每个preg_match项目执行此类dictionary,因此您可以收集列出的单词。

您可以省略使用一组单词,并使用每行一次的单词和更详细的测试文本(每个单词的 )。

此技术非常适合用于提取或测试文本的存在一组词(或不同变体或语言中的一个词)和链接他们 一些广义字词或含义。