将HTTP请求发送到特定站点的时间表

问题描述 投票:0回答:3

我希望以某种方式在特定站点的搜索查询出现新结果时得到通知。该网站没有为此提供任何功能(通过RSS,警报..etc)。我认为实现此目的的一种方法是发送http请求(用于搜索)并处理http响应以针对出现的任何新结果发送邮件。搜索参数可以是静态的,也可以更好地取自源代码(例如csv文件) 。没有人知道最好能在线完成的现有解决方案。

谢谢,截拳

http search automation mashup
3个回答
0
投票

这取决于您要查询的特定站点。


0
投票

我不知道要“开箱即用”地使用开源解决方案,因此,我相信您需要编写一个自定义的Spider / Crawler来完成您的任务;它需要提供以下服务:

  1. Scheduling-应进行爬网的时间。通常在类Unix系统中使用'cron'系统服务,在Windows中使用Task Scheduler。

  2. 检索-检索目标页面。使用脚本语言(例如Perl)或专用系统工具(例如“ curl”或“ wget”)。

  3. 提取/归一化-从目标(检索的页面)中删除所有内容,除了感兴趣的内容。需要补偿目标中与任务无关的变化部分,例如日期或广告。通常通过支持正则表达式(对于普通情况)的脚本语言或HTML解析器库(对于更专业的提取)来完成。

  4. Checksumming-将目标转换为由其内容确定的唯一标识符。用于确定自上次爬网以来对目标的更改。由系统工具(例如Linux'cksum'命令)或脚本语言完成。

  5. 更改检测-将上次检索目标的先前保存的校验和与当前检索中新计算的校验和进行比较。同样,通常使用脚本语言。

  6. 警告-通知用户已识别的更改。通常通过电子邮件或短信。

  7. 状态管理-存储上一次运行的目标URI,提取规则,用户首选项和目标校验和。使用配置文件或数据库(例如Mysql)。

请注意,此服务列表试图抽象地描述系统,因此听起来比您创建的实际工具要复杂得多。我之前已经写过几个这样的系统,所以我希望一个简单的用Perl编写的解决方案(利用标准Perl模块)并在Linux上运行,根据提取的复杂程度,两个目标站点大约需要一百行。


0
投票

[尝试iHook,它允许您安排对公共资源的HTTP请求,频率至少为1分钟,并在评估响应条件(响应代码,响应正文等)之后接收电子邮件通知。

© www.soinside.com 2019 - 2024. All rights reserved.