你们都可以跳过这个背景信息,尽管它很有用。
背景
我拥有一个为丹麦所有心理学家提供索引的网站。我的网站提供所有诊所的联系信息以及用户评级。
我目前列出了12.000名心理学家,其中约有6.000名有网站。大约有1000名心理学家访问了我的网站,他们用额外的“描述性”信息(如开放时间、价格等)填写了他们的个人资料。
我试图(用PHP和RegEx)自动抓取那些没有向我的社区提供详细信息的人的站点,原因很丰富。
我随机浏览了大约150个网站,得出的结论是,超过85 %的网站都有有价值的文本继续使用“Velkommen”(欢迎,在Denish中)。宝贝!
问题
#1
我如何在我的脚本中详细说明,我只想获得大约。360字,仅此而已。Ofc。这应该是前面(包括)的词Velkommen。此外,脚本不应该区分大小写(虽然Velkommen通常用大写V拼写,但它可以在另一个句子中弹出)。
而且,它应该是整个页面上最后出现的'velkommen‘,因为它有时会作为菜单/导航选项出现,这会很糟糕,因为我会抓取导航选项。
#2
目前,我的脚本将信息保存在多个数组中,然后保存在数据库中。
不知道我该怎么做。什么将是最优的SEO;
下面是一个示例站点和我的当前脚本:
$web = "http://www.psykologdorthelau.dk/";
$website = file_get_contents ($web);
preg_match_all("/velkommen.+?/sim", $website, $information);
//THIS SHOULD SPECIFICY THE VERY LAST 'VELKOMMEN' - it doesn't, I know :(
for($i = 0; $i < count($information[0]); $i++){
preg_match_all("/Velkommen (.+?)\"/sim", $information[0][$i], $text, PREG_SET_ORDER);
$psychologist[$i]['text'] = mysql_real_escape_string($text[0][1]);
}感谢任何能解决这个难题的人,他们来自丹麦这个美丽的国家。
发布于 2014-02-17 23:38:38
试着做这样的事情:
<?php
$web = "http://www.psykologdorthelau.dk/";
$website = file_get_contents ($web);
// TRY TO FIND ALL OF THE MATCHES
preg_match_all('/velkommen.{1,351}/ims', $website, $matches);
// PULL OUT THE LAST ITEM FROM THE `$matches`
$last_velkommen = array_pop($matches[0]);https://stackoverflow.com/questions/21819599
复制相似问题