这个问题CSDN不能搞定就没人可以搞定了
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了这个问题CSDN不能搞定就没人可以搞定了,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含7945字,纯文字阅读大概需要12分钟。
内容图文
![这个问题CSDN不能搞定就没人可以搞定了](/upload/InfoBanner/zyjiaocheng/195/cad163e8722d4c84bfce1deadc32e12b.jpg)
放在服务器上,也可以采集。 但是。。。。
目标站,内容更新后,,,服务器上,要过 好几个小时才能采。 (有时要隔一天)
而本地,不用等,只要目标站有数据,就可以采到。
感觉就像采数据的时候,网页没有刷新一样。
是 服务器 问题? 还是程序不够好?(程序上,每次刷新的时候,都是重新载入页面! ,还加了 随机字符),给公司的技术也看过了,都说程序没问题
我问了空间商,他说要我报错过去, 我怎么报? 请高手中的高手帮忙解决!
到底是什么问题?
回复讨论(解决方案)
你是如何控制采集程序工作的?
你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('/
$Cstart = strpos($InContent,"");
$Cend = strpos($InContent,"");
$Lcontent = $Cend - $Cstart;
$Content = substr($InContent,$Cstart,$Lcontent);
if($_GET["action"]=="cai")
{
$PageUrl = "http://www.zhibo8.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('/
$Cstart = strpos($InContent,"");
$Cend = strpos($InContent,"");
$Lcontent = $Cend - $Cstart;
$Content = substr($InContent,$Cstart,$Lcontent);
你服务器是固定IP,人家早把你的IP列入黑名单了。。。
为什么 有时 可以采?
其实 现在也可以采,但是最新的 内容 采不了。要等, 而本地 不用等 另外,主页昨天显示的内容,今不显示。但 我还可以采到 昨天的,好像 就是 我们看网页 没有刷新一样
服务器有缓存?
应该是ip被禁了
ip被禁了 我无法理解,,被禁了 就无法采了。服务器有缓存? 我也是这样想的,可程序上做好了这方面的工作。 也不太可能了
其实 现在也可以采,但是最新的 内容 采不了。要等, 而本地 不用等 另外,主页昨天显示的内容,今不显示。但 我还可以采到 昨天的,好像 就是 我们看网页 没有刷新一样
对方将你的服务器ip放入黑名单,并且并不是直接禁止访问,而是让你访问他的旧数据。这就解释了你所有的问题
所以忽悠你让你蛋痛的想半天 四处求救,也就达到了他们的目的了。哈哈哈
对方肯定是把你的ip列入黑名单了,你可以用adsl的连接方式,定时重连网络,这样你反复更换ip,对方服务器就应付不过来了,给你一段定时重连adsl的脚本
$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;}
服务器固定IP怎么用ADSL?
用代理吧
对方肯定是把你的ip列入黑名单了,你可以用adsl的连接方式,定时重连网络,这样你反复更换ip,对方服务器就应付不过来了,给你一段定时重连adsl的脚本
PHP code
$i=1;
while(true)
{
sleep(120);
if(cutNet()){
sleep(10);
if(connectNet())
……
我是 虚拟主机。 日本的IP... 第一次 在这个服务器上 做采集。。。他就知道?
还有就是 虚拟主机 上 要怎么代理?
我是 虚拟主机。 日本的IP... 第一次 在这个服务器上 做采集。。。他就知道?
还有就是 虚拟主机 上 要怎么代理?
采集多少次知道 这个不是必然的。
你是虚拟主机你也不能保证你的主机上是否有其他人采集过,或者这个ip以前是否采集过
最后一个,检查你的虚拟主机时间,如果采集程序有用到时间函数,如果存在时差也可能会产生问题。
我是 虚拟主机。 日本的IP... 第一次 在这个服务器上 做采集。。。他就知道?
还有就是 虚拟主机 上 要怎么代理?
刚刚要求 服务器换了IP 还是一样的问题。。。看来 可能是时间差、那有什么办法吗?
function isConnect()
{
exec("Rasdial",$out1,$ars1);//断线
if($out1['0']=='没有连接'){
echo "没有找到连接。。。\r\n";
return false;
}
return true;
}
从描述来看,你的本机和你的服务器,不是在一个地区的吧?我是指省市地区。
那么也有可能是CDN导致的,不同的省市运营商,虽然访问同一个域名,但访问的主机和内容会出现不一致的情况,CDN的同步需要时间。
想解决这个问题,在你的本地搞个服务器就行了。
从描述来看,你的本机和你的服务器,不是在一个地区的吧?我是指省市地区。
那么也有可能是CDN导致的,不同的省市运营商,虽然访问同一个域名,但访问的主机和内容会出现不一致的情况,CDN的同步需要时间。
想解决这个问题,在你的本地搞个服务器就行了。
也就是 换个服务器 是吗?
要采集国内的站点,不管从哪个角度说都适合使用国内的主机.再烂也不能烂过功夫墙外的机房了.
好歹咱们也是个局域网啊
引用 27 楼 的回复:
从描述来看,你的本机和你的服务器,不是在一个地区的吧?我是指省市地区。
那么也有可能是CDN导致的,不同的省市运营商,虽然访问同一个域名,但访问的主机和内容会出现不一致的情况,CDN的同步需要时间。
想解决这个问题,在你的本地搞个服务器就行了。
也就是 换个服务器 是吗?
从描述来看,你的本机和你的服务器,不是在一个地区的吧?我是指省市地区。
那么也有可能是CDN导致的,不同的省市运营商,虽然访问同一个域名,但访问的主机和内容会出现不一致的情况,CDN的同步需要时间。
想解决这个问题,在你的本地搞个服务器就行了。
是CDN导致 的问题 原来 电的速度不怎么快
![](http://www.gxlcms.com/Public/aiod/ts.jpg)
PHP教程热搜
- php设置脚本最大执行时间的方法是什么
- php中$_SESSION获取不到值怎么办
- php 如何修改图片像素大小
- php date如何转换时间戳
- PHP如何替换数组中的指定元素
- php5ts.dll找不到怎么办
- php如何多个字符串一次替换
- php如何判断文件是不是图片
- php 给数组增加键值对
- php正则如何替换a标签
- php base64转换成图片的方法
- php如何去除回车
- 苹果系统安装php环境的方法详解
- php怎么实现数组随机且不重复
- php do while用法详解
- 教你用PHP开发微信公众号文章付费阅读功能
- php字符串太长怎么办
- php fbclient.dll 丢失怎么办
- php如何实现big5转utf8
- php如何增加字段
- php如何获取调用方法名
- 如何卸载源码安装的php
- php smtp发送邮件失败怎么办
- php如何把数字转成大写字母
- php如何实现下载并修改文件名称
![](http://www.gxlcms.com/ad/tx500x500.jpg)