访问http://www.example.net
时,会下载包含该网站最新数据的CSV文件。我想让我的网站http://www.example.com
每小时访问http://www.example.net
,以获取最新信息。
然后,我想使用CSV文件中存储的更新信息来比较以前CSV文件中数据的更改。我显然不知道最好的攻击计划是什么,所以任何帮助都会受到赞赏。我只是在寻找一个如何进行的概述,但是越多的信息越好。
顺便说一句,我正在使用LAMP捆绑包,因此首选PHP和mySQL解决方案。
答案 0 :(得分:1)
我认为,处理此问题最简单的方法是每小时运行一次cron作业(如果是在Windows上运行预定任务),请使用curl或{{下载CSV 1}}(manual)。下载CSV后,您可以在MySQL数据库中导入新数据。
CSV应该在每一行都有某种时间戳,这样您就可以轻松地分离新旧数据。
同样处理XML会比纯CSV更好。
更好的设置方法是在file_get_contents
上创建网络服务,并从http://www.example.com
实时更新。但它要求您访问这两个网站。
答案 1 :(得分:0)
根据您正在使用的操作系统,您正在查看计划任务(Windows)或cron作业(* nix)以启动服务/应用程序,该服务/应用程序将提取新CSV并将其与旧版本进行比较副本。
答案 2 :(得分:0)
你肯定想要去一个cron工作的路线。我不确定你想要对差异做些什么,但是,如果你只想要一封电子邮件,这里有一个潜在的(和简化的)选项:
wget http://uri.com/file.txt && diff file.txt file_previous.txt | mail -s "Differences" your@email.com && mv file.txt file_previous.txt
从命令行单独尝试此命令(我猜你正在使用* nix框),看看你是否能让它运行起来。从那里,我将其保存到您要保存CSV文件的目录中的shell文件。
cd /path/to/directory
vi process_csv.sh
并添加以下内容:
#!/bin/bash
cd /path/to/directory
wget http://uri.com/file.txt
diff file.txt file_previous.txt | mail -s "Differences" your@email.com
mv file.txt file_previous.txt
保存并关闭文件。使新的shell脚本可执行:
chmod +x process_csv.sh
从那里开始调查cronjob路线。它可以像检查您是否可以编辑crontab文件一样简单:
crontab -e
幸运的是,您将能够输入您的cronjob并保存/关闭文件。它看起来如下所示:
01 * * * * /path/to/directory/process_csv.sh
我希望你觉得这很有用。