输入banner图图片脚本导航/分类

这个问题CSDN不能搞定就没人可以搞定了

本人做了一个采集。 在本地测试,可以正常采集。

放在服务器上,也可以采集。 但是。。。。

目标站,内容更新后,,,服务器上,要过 好几个小时才能采。 (有时要隔一天)

而本地,不用等,只要目标站有数据,就可以采到。


感觉就像采数据的时候,网页没有刷新一样。




是 服务器 问题? 还是程序不够好?(程序上,每次刷新的时候,都是重新载入页面! ,还加了 随机字符),给公司的技术也看过了,都说程序没问题


我问了空间商,他说要我报错过去, 我怎么报? 请高手中的高手帮忙解决!

到底是什么问题?


回复讨论(解决方案)

你是如何控制采集程序工作的?



你Q多少,我联系你。。

QQ288801 谢谢 帮我 看下

2888801 刚才少了一个 8

QQ288801 谢谢 帮我 看下
CSDN最忌讳留QQ了。有问题就请在贴子里说。能帮的大家会帮助你的。。

对程序 我也不是 很清楚, 。。但问了 搞技术的 同事,程序没问题 所以想让 高手 帮我 看看程序

你可以把采集部分的代码贴出来。

if($_GET["action"]=="cai")
{
$PageUrl = "http://www.xxxxx.com/?id=".time();
$Pagecontent = file_get_contents($PageUrl);

$start = strpos($Pagecontent,"");
$EndHtml = strpos($Pagecontent,"");
$lenHtml = $EndHtml - $start;
$Pagecontent = substr($Pagecontent,$start,$lenHtml);

$HtmlAll = "";

preg_match_all('/(.*?)<\/a>/',$Pagecontent,$UrlList);
for($i=sizeof($UrlList[2]);$i>=0;$i--){
$InUrl = "http://www.zhibo8.com".$UrlList[2][$i];
$TermDay = $_POST["txtdate"];

//$HtmlAll = $HtmlAll.$InUrl."-----".$TermDay."\r\n";

if(strstr($InUrl,$TermDay) && strstr($InUrl,"nba"))
{


$InContent = file_get_contents($InUrl);

//$start1 = strpos($InContent,"");
//$EndHtml1 = strpos($InContent,"");
//$lenHtml1 = $EndHtml1 - $start1;
//$InContent = substr($InContent,$start1,$lenHtml1);

preg_match('/(.*?)<\/title>/',$InContent,$Title); <br /> <br /> <br /> $Cstart = strpos($InContent,""); <br /> $Cend = strpos($InContent,"<!-- JiaThis Button BEGIN -->"); <br /> $Lcontent = $Cend - $Cstart; <br /> $Content = substr($InContent,$Cstart,$Lcontent); </p> <p class="sougouAnswer"> if($_GET["action"]=="cai") <br /> { <br /> $PageUrl = "http://www.zhibo8.com/?id=".time(); <br /> $Pagecontent = file_get_contents($PageUrl); <br /> <br /> $start = strpos($Pagecontent,""); <br /> $EndHtml = strpos($Pagecontent,""); <br /> $lenHtml = $EndHtml - $start; <br /> $Pagecontent = substr($Pagecontent,$start,$lenHtml); <br /> <br /> $HtmlAll = ""; <br /> <br /> preg_match_all('/(.*?)<\/a>/',$Pagecontent,$UrlList); <br /> for($i=sizeof($UrlList[2]);$i>=0;$i--){ <br /> $InUrl = "http://www.zhibo8.com".$UrlList[2][$i]; <br /> $TermDay = $_POST["txtdate"]; <br /> <br /> //$HtmlAll = $HtmlAll.$InUrl."-----".$TermDay."\r\n"; <br /> <br /> if(strstr($InUrl,$TermDay) && strstr($InUrl,"nba")) <br /> { <br /> <br /> <br /> $InContent = file_get_contents($InUrl); <br /> <br /> //$start1 = strpos($InContent,""); <br /> //$EndHtml1 = strpos($InContent,""); <br /> //$lenHtml1 = $EndHtml1 - $start1; <br /> //$InContent = substr($InContent,$start1,$lenHtml1); <br /> <br /> preg_match('/<title>(.*?)<\/title>/',$InContent,$Title); <br /> <br /> <br /> $Cstart = strpos($InContent,""); <br /> $Cend = strpos($InContent,"<!-- JiaThis Button BEGIN -->"); <br /> $Lcontent = $Cend - $Cstart; <br /> $Content = substr($InContent,$Cstart,$Lcontent); </p> <p class="sougouAnswer"> 你服务器是固定IP,人家早把你的IP列入黑名单了。。。 </p> <p class="sougouAnswer"> 为什么 有时 可以采? </p> <p class="sougouAnswer"> 其实 现在也可以采,但是最新的 内容 采不了。要等, 而本地 不用等 另外,主页昨天显示的内容,今不显示。但 我还可以采到 昨天的,好像 就是 我们看网页 没有刷新一样 </p> <p class="sougouAnswer"> 服务器有缓存? </p> <p class="sougouAnswer"> 应该是ip被禁了 </p> <p class="sougouAnswer"> ip被禁了 我无法理解,,被禁了 就无法采了。服务器有缓存? 我也是这样想的,可程序上做好了这方面的工作。 也不太可能了 </p> <p class="sougouAnswer"> 其实 现在也可以采,但是最新的 内容 采不了。要等, 而本地 不用等 另外,主页昨天显示的内容,今不显示。但 我还可以采到 昨天的,好像 就是 我们看网页 没有刷新一样 <br /> <br /> 对方将你的服务器ip放入黑名单,并且并不是直接禁止访问,而是让你访问他的旧数据。这就解释了你所有的问题 <br /> <br /> </p> <p class="sougouAnswer"> 所以忽悠你让你蛋痛的想半天 四处求救,也就达到了他们的目的了。哈哈哈 </p> <p class="sougouAnswer"> 对方肯定是把你的ip列入黑名单了,你可以用adsl的连接方式,定时重连网络,这样你反复更换ip,对方服务器就应付不过来了,给你一段定时重连adsl的脚本 <br /> <pre class="sycode" name="code">$i=1;while(true){ sleep(120); if(cutNet()){ sleep(10); if(connectNet()) { echo "成功连接 " .$i." 次\r\n"; } else { echo "未连接 \r\n"; } } else { echo "未成功断开连接\r\n"; } $i++;}/** * ADSL拨号 */function connectNet($cNum=0){ exec("rasdial.exe ADSL adsl_name adsl_pwd",$out1,$ars1); print_r($out1); if (preg_match('/已连接 ADSL/',$out1[3]) or preg_match('/已连接 ADSL/',$out1[4])) { return true; }else{ return false; }}function cutNet(){ if(isConnect()){ exec("Rasdial ADSL /disconnect",$out1,$ars1);//断线 if (preg_match('/已完成/',$out1[0])) { return true; } else { return false; } } else { return true; }}function isConnect(){ exec("Rasdial",$out1,$ars1);//断线 if($out1['0']=='没有连接'){ echo "没有找到连接。。。\r\n"; return false; } return true;}</pre> </p> <p class="sougouAnswer"> 服务器固定IP怎么用ADSL? <br /> 用代理吧 <br /> 对方肯定是把你的ip列入黑名单了,你可以用adsl的连接方式,定时重连网络,这样你反复更换ip,对方服务器就应付不过来了,给你一段定时重连adsl的脚本 <br /> <br /> PHP code <br /> <br /> <br /> <br /> $i=1; <br /> while(true) <br /> { <br /> sleep(120); <br /> if(cutNet()){ <br /> sleep(10); <br /> if(connectNet()) <br /> …… </p> <p class="sougouAnswer"> 我是 虚拟主机。 日本的IP... 第一次 在这个服务器上 做采集。。。他就知道? <br /> <br /> 还有就是 虚拟主机 上 要怎么代理? </p> <p class="sougouAnswer"> 我是 虚拟主机。 日本的IP... 第一次 在这个服务器上 做采集。。。他就知道? <br /> <br /> 还有就是 虚拟主机 上 要怎么代理? <br /> <br /> 采集多少次知道 这个不是必然的。 <br /> 你是虚拟主机你也不能保证你的主机上是否有其他人采集过,或者这个ip以前是否采集过 <br /> <br /> 最后一个,检查你的虚拟主机时间,如果采集程序有用到时间函数,如果存在时差也可能会产生问题。 <br /> </p> <p class="sougouAnswer"> 我是 虚拟主机。 日本的IP... 第一次 在这个服务器上 做采集。。。他就知道? <br /> <br /> 还有就是 虚拟主机 上 要怎么代理? <br /> <br /> 刚刚要求 服务器换了IP 还是一样的问题。。。看来 可能是时间差、那有什么办法吗? </p> <p class="sougouAnswer"> function isConnect() <br /> { <br /> exec("Rasdial",$out1,$ars1);//断线 <br /> if($out1['0']=='没有连接'){ <br /> echo "没有找到连接。。。\r\n"; <br /> return false; <br /> } <br /> return true; <br /> } <br /> <br /> </p> <p class="sougouAnswer"> 从描述来看,你的本机和你的服务器,不是在一个地区的吧?我是指省市地区。 <br /> <br /> 那么也有可能是CDN导致的,不同的省市运营商,虽然访问同一个域名,但访问的主机和内容会出现不一致的情况,CDN的同步需要时间。 <br /> <br /> 想解决这个问题,在你的本地搞个服务器就行了。 <br /> </p> <p class="sougouAnswer"> 从描述来看,你的本机和你的服务器,不是在一个地区的吧?我是指省市地区。 <br /> <br /> 那么也有可能是CDN导致的,不同的省市运营商,虽然访问同一个域名,但访问的主机和内容会出现不一致的情况,CDN的同步需要时间。 <br /> <br /> 想解决这个问题,在你的本地搞个服务器就行了。 <br /> <br /> 也就是 换个服务器 是吗? </p> <p class="sougouAnswer"> 要采集国内的站点,不管从哪个角度说都适合使用国内的主机.再烂也不能烂过功夫墙外的机房了. <br /> 好歹咱们也是个局域网啊 <br /> <br /> 引用 27 楼 的回复: <br /> 从描述来看,你的本机和你的服务器,不是在一个地区的吧?我是指省市地区。 <br /> <br /> 那么也有可能是CDN导致的,不同的省市运营商,虽然访问同一个域名,但访问的主机和内容会出现不一致的情况,CDN的同步需要时间。 <br /> <br /> 想解决这个问题,在你的本地搞个服务器就行了。 <br /> <br /> <br /> 也就是 换个服务器 是吗? </p> <p class="sougouAnswer"> 从描述来看,你的本机和你的服务器,不是在一个地区的吧?我是指省市地区。 <br /> <br /> 那么也有可能是CDN导致的,不同的省市运营商,虽然访问同一个域名,但访问的主机和内容会出现不一致的情况,CDN的同步需要时间。 <br /> <br /> 想解决这个问题,在你的本地搞个服务器就行了。 <br /> <br /> 是CDN导致 的问题 原来 电的速度不怎么快 </p> <p class="sougouAnswer"> 谢谢,,再次想到了这里 </div> </div> <script type="text/javascript" src="/layui/layui.js"></script> <script> layui.use('code', function(){ layui.code({ elem: 'pre', //默认值为.layui-code about:false, title:'这个问题CSDN不能搞定就没人可以搞定了代码块', encode: true //是否转义html标签。默认不开启 }); }); </script> <footer class="comm-footer"> <ul class="channels"> <li> <a target="_top" href="/system/">操作系统</a> </li><li> <a target="_top" href="/down/">程序下载</a> </li><li> <a target="_top" href="/jquery/">jquery插件库</a> </li><li> <a target="_top" href="/jiaoben/">编程</a> </li><li> <a target="_top" href="/db/">数据库</a> </li><li> <a target="_top" href="/tools/">在线工具</a> </li><li> <a target="_top" href="/framebook/">框架书籍</a> </li><li> <a target="_top" href="/xitongjiaocheng/">系统教程</a> </li><li> <a target="_top" href="/ruanjianxiazai/">软件下载</a> </li> </ul> <ul class="versions"> <li> <a href="https://m.gxlcms.com" class="active">触屏版</a> </li> <li> <a href="https://www.gxlcms.com" target="_top">电脑版</a> </li> </ul> <p><a href="https://beian.miit.gov.cn/" target="_blank" style="color:#ffffff"></a><script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?6c9b8cea1903c9f813f150c04aeebc3c"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script></p> </footer> </body> </html>