每当特定站点中的搜索查询出现新结果时,我希望通过某种方式得到通知。该网站不为此提供任何功能(通过 RSS、警报等)。我认为实现此目的的一种方法是发送 http 请求(用于搜索)并处理 http 响应以发送邮件以获取出现的任何新结果。搜索参数可以是静态的,也可以更好地取自源(如 csv 文件) . 有谁知道现有的解决方案,最好是在线的,可以做到这一点。
谢谢,吉特
每当特定站点中的搜索查询出现新结果时,我希望通过某种方式得到通知。该网站不为此提供任何功能(通过 RSS、警报等)。我认为实现此目的的一种方法是发送 http 请求(用于搜索)并处理 http 响应以发送邮件以获取出现的任何新结果。搜索参数可以是静态的,也可以更好地取自源(如 csv 文件) . 有谁知道现有的解决方案,最好是在线的,可以做到这一点。
谢谢,吉特
我知道没有“开箱即用”的开源解决方案可以做到这一点,所以我相信你需要编写一个自定义的蜘蛛/爬虫来完成你的任务;它需要提供以下服务:
调度 - 何时应该进行爬网。通常使用类 Unix 系统中的“cron”系统服务或 Windows 中的任务调度程序。
检索 - 检索目标页面。使用像 Perl 这样的脚本语言或像“curl”或“wget”这样的专用系统工具。
提取/规范化 - 从目标(检索到的页面)中删除除感兴趣的内容之外的所有内容。需要补偿与任务无关的目标更改部分,例如日期或广告。通常通过支持正则表达式(用于普通情况)或 HTML 解析器库(用于更专业的提取)的脚本语言来完成。
校验和 - 将目标转换为由其内容确定的唯一标识符。用于确定自上次爬网以来对目标的更改。由系统工具(如 Linux 'cksum' 命令)或脚本语言完成。
更改检测 - 将上次检索的目标的先前保存的校验和与当前检索的新计算的校验和进行比较。同样,通常使用脚本语言。
警报 - 通知用户已识别的更改。通常通过电子邮件或短信。
状态管理 - 存储上次运行的目标 URI、提取规则、用户偏好和目标校验和。使用配置文件或数据库(如 Mysql)。
请注意,此服务列表试图抽象地描述系统,因此听起来比您创建的实际工具要复杂得多。我以前写过几个这样的系统,所以我希望一个用 Perl(使用标准 Perl 模块)编写并在 Linux 上运行的简单解决方案需要一百行左右才能用于几个目标站点,具体取决于提取复杂性。
这将取决于您要查询的特定站点。
试试iHook,它允许您安排(频率为 1 分钟)对公共 Web 资源的 HTTP 请求,并接收基于规则的电子邮件通知。您可以围绕响应状态代码和响应正文创建通知规则(通过 JSON 表达式和 CSS 选择器)。