php - 使用 RegEx 将抓取限制为 X 个字符 + 其他规范

标签 php mysql regex

关闭。这个问题需要更多 focused .它目前不接受答案。












想改进这个问题?更新问题,使其仅关注一个问题 editing this post .

8年前关闭。




Improve this question




你们都可以跳过这个背景信息,尽管它很有帮助。

背景

我拥有一个索引丹麦所有心理学家的网站。
我的网站提供所有诊所的联系信息以及用户评分。

我目前列出了 12.000 名心理学家,其中大约 6.000 名拥有网站。大约 1000 名心理学家访问了我的网站,并在他们的个人资料中填写了额外的“描述性”信息(例如开放时间、价格等)

出于提供信息的原因,我正在尝试自动抓取(使用 PHP 和 RegEx)那些没有向我的社区提供详细信息的网站。

我随机浏览了大约 150 个网站,得出的结论是,超过 85% 的网站在“Velkommen”(=welcome,丹麦语)这个词前有有值(value)的文字。宝贵的!

问题

#1

我如何在我的脚本中具体说明,我只想捕获大约。 360 个字符,仅此而已。办公室。这应该在 Velkommen 一词之前(并包括)。此外,脚本不应该区分大小写(虽然 Velkommen 通常拼写为大写 V,但它可以在另一个句子中弹出。)

此外,它应该是整个首页上最后出现的“velkommen”,因为它有时会作为菜单/导航选项出现,这很糟糕,因为我会捕获导航选项。

#2

目前,我的脚本将信息保存在多个数组中,然后保存在数据库中。

不知道我应该怎么做。什么是 SEO 的最佳选择;

  • 将抓取的文本保存在 MySQL 中并每次都显示。
  • 每次都渲染相同的 360 字 rune 本 [跟随 '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]);
    }
    

    感谢任何能解决这个难题的人,来自美妙的丹麦。

    最佳答案

    尝试这样的事情:

    <?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]);
    

    关于php - 使用 RegEx 将抓取限制为 X 个字符 + 其他规范,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21819599/

    相关文章:

    php - 编写 .htaccess 以保护 Web 应用程序中的 Symfony 目录时出错

    php - 使用 php 变量基于下拉列表添加输入字段

    regex - 用于匹配 protected 分隔值的正则表达式

    regex - 在 bash 中解析此网页中的文本

    PHP 正则表达式不匹配右括号

    php - PHP-MySQL 或 MySQLi 中哪个最快?

    PHP 简单解析器每天只运行一次

    php mysqli 函数坚持可选参数

    mysql - 在 Rails 脚手架的日期范围内显示数据

    python - 在特定点移动名称中具有一位或两位数字的文件