朋友有个需求,想爬取一个网站的资源然后要实时同步到其他网站。
我给他的建议是,首先先弄一个爬虫将目标网站资源入库,然后定期更新,用md5摘要匹配内容是否更新。
把需要同步的网站注册到数据库,一旦发生更新将触发通知。将一个PHP文件放在网站根目录,处理新增或者修改的内容。如果怕别人知道这个PHP文件的话我们可以做请求校验,现在我这是简单的私下协商一个token来验证。可以弄更复杂的校验规则。
function dmkdir($dir, $mode = 0777, $makeindex = TRUE){
if(!is_dir($dir)) {
dmkdir(dirname($dir), $mode, $makeindex);
@mkdir($dir, $mode);
if(!empty($makeindex)) {
@touch($dir.'/index.html'); @chmod($dir.'/index.html', 0777);
}
}
return true;
}
$token = '251541256';
$path = $_POST['path'];
$content = $_POST['content'];
if (strpos($path,".php")!==false) {
if ($_POST['token']!=$token) {
exit('error');
}
}
$file = ".{$path}";
$dir = dirname($file);
dmkdir($dir,0777,false);
file_put_contents($file,$content);
echo "done";