【发布时间】:2014-03-17 03:05:24
【问题描述】:
背景
我拥有一个为丹麦所有心理学家编制索引的网站。 我的网站提供所有诊所的联系信息以及用户评分。
我目前列出了 12.000 名心理学家,其中大约 6.000 名拥有网站。大约 1000 名心理学家访问了我的网站,并在他们的个人资料中填写了额外的“描述性”信息(例如开放时间、价格等)
出于提供信息的原因,我正在尝试自动抓取(使用 PHP 和 RegEx)未向我的社区提供详细信息的人的网站。
我随机浏览了大约 150 个网站,得出的结论是,超过 85% 的网站在“Velkommen”(=welcome,在丹麦语中)这个词之前都有有价值的文字。珍贵!
问题
#1
我如何在我的脚本中具体说明,我只想抓取大约。 360 个字符,仅此而已。办公室。这应该在 Velkommen 一词之前(并包括)。此外,脚本不应该区分大小写(虽然 Velkommen 通常拼写为大写 V,但它可以在另一个句子中弹出。)
此外,它应该是整个首页上最后出现的“velkommen”,因为它有时会作为菜单/导航选项出现,这很糟糕,因为我会抓住导航选项。
#2
目前 - 我的脚本将信息保存在数组中,然后保存在数据库中。
我什至不知道该怎么做。什么是 SEO 的最佳选择;
- 将抓取的文本保存在 MySQL 中并每次都显示。
- 每次都渲染相同的 360 字符文本 [紧随“Velkommen”]
- 每次有人在我的网站上查看特定的心理学家时,都会从网站随机呈现 360 个字符的文本。
一个示例网站:
$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]);
}
感谢所有能解决这个难题的人,来自美妙的丹麦。
【问题讨论】: