欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-05-16 20:01:16
...
本人做了一个采集。 在本地测试,可以正常采集。

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

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

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


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




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


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

到底是什么问题?

回复讨论(解决方案)

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



你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('/(.*?)/',$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('/(.*?)/',$InContent,$Title); <br><br><br> $Cstart = strpos($InContent,"<div class='\"content\"'>"); <br> $Cend = strpos($InContent,""); <br> $Lcontent = $Cend - $Cstart; <br> $Content = substr($InContent,$Cstart,$Lcontent); <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,"</p> <div class='\"fb_bbs\"'>"); <br> $EndHtml = strpos($Pagecontent,"<div class='\"bb_bbs\"'>"); <br> $lenHtml = $EndHtml - $start; <br> $Pagecontent = substr($Pagecontent,$start,$lenHtml); <br><br> $HtmlAll = ""; <br><br> preg_match_all('/<a target="_blank" rel="nofollow" href="/default/index/url?u=aHR0cHM6Ly93d3cucGhwLmNu">(.*?)/',$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,"<div id='\"body\"'>"); <br> //$EndHtml1 = strpos($InContent,"<div id='\"footer\"'>"); <br> //$lenHtml1 = $EndHtml1 - $start1; <br> //$InContent = substr($InContent,$start1,$lenHtml1); <br><br> preg_match('/<title>(.*?)/',$InContent,$Title); <br><br><br> $Cstart = strpos($InContent,"<div class='\"content\"'>"); <br> $Cend = strpos($InContent,""); <br> $Lcontent = $Cend - $Cstart; <br> $Content = substr($InContent,$Cstart,$Lcontent); <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></p> <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 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"> 谢谢,,再次想到了这里</p> <a href="/default/index/url?u=aHR0cHM6Ly93d3cucGhwLmNuL2suaHRtbD90PTI=" target="_blank" rel="nofollow"><img onerror="this.src='/statics/superweb999/images/image_error.jpg'"src="/default/index/img?u=aHR0cHM6Ly9pbWcucGhwLmNuL3VwbG9hZC9jb3Vyc2UvMDAwLzAwMC8wNzEvNjIwYzYwNGY3NTI1MTk5NS5wbmc=" style="margin-top: 30px;" alt="这个问题CSDN不能搞定就没人可以搞定了" title="这个问题CSDN不能搞定就没人可以搞定了"></a><p style="float:right;font-size:13px;color:#999;"><span class="red">声明:</span>本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。</p> </div> <p class="article-relative-header">相关文章</p> <p class="article-relative-header">相关视频</p> <hr class="layui-clear"> <ul class="article-relative-ul"> <li> <span class="layui-badge-dots"></span><a class="relevant" href="/default/index/url?u=aHR0cHM6Ly93d3cucGhwLmNuL3BocC13ZWl6aWppYW9jaGVuZy00ODg4ODkuaHRtbA==" target="_blank" rel="nofollow">详解win10下PHP的安装配置(以php5.6为...</a> </li> <li> <span class="layui-badge-dots"></span><a class="relevant" href="/default/index/url?u=aHR0cHM6Ly93d3cucGhwLmNuL3BocC13ZWl6aWppYW9jaGVuZy00ODg4MzUuaHRtbA==" target="_blank" rel="nofollow">php Swoole实现毫秒定时计划任务(详解)</a> </li> <li> <span class="layui-badge-dots"></span><a class="relevant" href="/default/index/url?u=aHR0cHM6Ly93d3cucGhwLmNuL3BocC13ZWl6aWppYW9jaGVuZy00ODg4NTQuaHRtbA==" target="_blank" rel="nofollow">【DTM】PHP协程客户端v0.1 beta版本发...</a> </li> <li> <span class="layui-badge-dots"></span><a class="relevant" href="/default/index/url?u=aHR0cHM6Ly93d3cucGhwLmNuL3BocC13ZWl6aWppYW9jaGVuZy0yOTg2MTkuaHRtbA==" target="_blank" rel="nofollow">PHP中类的理解和应用[一]_PHP教程</a> </li> <li> <span class="layui-badge-dots"></span><a class="relevant" href="/default/index/url?u=aHR0cHM6Ly93d3cucGhwLmNuL3BocC13ZWl6aWppYW9jaGVuZy0yNjQ0MDYuaHRtbA==" target="_blank" rel="nofollow">这个问题CSDN不能搞定就没人可以搞定了</a> </li> </ul> <ul class="article-relative-ul"> <li> <span class="layui-badge-dots"></span><a class="relevant" href="/default/index/url?u=aHR0cHM6Ly93d3cucGhwLmNuL2NvZGUvNDY5MTguaHRtbA==" target="_blank" title="接口与抽象类01" rel="nofollow">接口与抽象类01</a> </li> <li> <span class="layui-badge-dots"></span><a class="relevant" href="/default/index/url?u=aHR0cHM6Ly93d3cucGhwLmNuL2NvZGUvNDY5MTcuaHRtbA==" target="_blank" title="类的composer自动加载机制" rel="nofollow">类的composer自动加载机制</a> </li> <li> <span class="layui-badge-dots"></span><a class="relevant" href="/default/index/url?u=aHR0cHM6Ly93d3cucGhwLmNuL2NvZGUvNDY5MTYuaHRtbA==" target="_blank" title="composer原理与常用命令03" rel="nofollow">composer原理与常用命令03</a> </li> <li> <span class="layui-badge-dots"></span><a class="relevant" href="/default/index/url?u=aHR0cHM6Ly93d3cucGhwLmNuL2NvZGUvNDY5MTUuaHRtbA==" target="_blank" title="composer原理与常用命令02" rel="nofollow">composer原理与常用命令02</a> </li> </ul>

专题推荐

作者信息
这个问题CSDN不能搞定就没人可以搞定了

认证0级讲师

推荐视频教程
  • 这个问题CSDN不能搞定就没人可以搞定了javascript初级视频教程
  • 这个问题CSDN不能搞定就没人可以搞定了jquery 基础视频教程
  • 视频教程分类
    相关标签: 这个问题CSDN不能搞定就没人可以搞定了

    上一篇: php file_get_contents抓取Gzip网页乱码的三种解决方法_PHP

    下一篇: Classes and Objects in PHP5_PHP教程

    推荐阅读