php程序端的采集,php采集程序
完成了大约10分钟的采集后,出现fwrite(......)请求,出现警告,随后出现丢包,有些网页就出现抓取失败的问题。。
前面10分钟都没问题,10分钟之后,fwrite(....)发送请求出现警告的频率慢慢变大
难道是被服务器拒绝了请求?
错误提示信息:
Notice: fwrite(): in E:\CodeEdit\php\http\001.php on line 200
对链接http://www.mmkao.com/Beautyleg/201410/6565_6.html发起请求
即将采集下一组
对链接http://www.mmkao.com/Beautyleg/201410/6559.html发起请求
对链接http://www.mmkao.com/Beautyleg/201410/6559_2.html发起请求
对链接http://www.mmkao.com/Beautyleg/201410/6559_3.html发起请求
对链接http://www.mmkao.com/Beautyleg/201410/6559_4.html发起请求
对链接http://www.mmkao.com/Beautyleg/201410/6559_5.html发起请求
对链接http://www.mmkao.com/Beautyleg/201410/6559_6.html发起请求
对链接http://www.mmkao.com/Beautyleg/201410/6559_7.html发起请求
对链接http://www.mmkao.com/Beautyleg/201410/6559_8.html发起请求
对链接http://www.mmkao.com/Beautyleg/201410/6559_9.html发起请求
对链接http://www.mmkao.com/Beautyleg/201410/6559_10.html发起请求
即将采集下一组
对链接http://www.mmkao.com/Beautyleg/201410/6549.html发起请求
对链接http://www.mmkao.com/Beautyleg/201410/6549_2.html发起请求
Notice: fwrite(): in E:\CodeEdit\php\http\001.php on line 200
对链接http://www.mmkao.com/Beautyleg/201410/6549_3.html发起请求
即将采集下一组
Notice: fwrite(): in E:\CodeEdit\php\http\001.php on line 200
对链接http://www.mmkao.com/Beautyleg/201410/6537.html发起请求
Notice: fwrite(): in E:\CodeEdit\php\http\001.php on line 200
有点疑惑,代码的实现原理还是很简单的,只是网络请求调试想对困难一些,有这方面经验的,可以分享一下
代码有点多?居然提示不能超过10000个字符。
代码链接在这里: http://blog.csdn.net/free_program_1314/article/details/41798199
回复讨论(解决方案)
你在 100 行处 $this->conn = fsockopen($this->ip,$this->port,$errno,$errstr,$this->timeout);
后只在 101 行判断了是否连接成功,虽然不成功时会返回 false
但在 62 行调用时 $this->connect(); 并没有检查是否返回了 false
即无论连接是否成功,程序都会继续执行。于是很自然的把隐患扩散了出去
你至少得在 200 行的 fwrite($this->conn,.... 前,判断一下 $this->conn 是否是资源
而若 $this->connect() 失败,就该转到策略处理程序,还按正常流程进行是没有意义的
你在 100 行处 $this->conn = fsockopen($this->ip,$this->port,$errno,$errstr,$this->timeout);
后只在 101 行判断了是否连接成功,虽然不成功时会返回 false
但在 62 行调用时 $this->connect(); 并没有检查是否返回了 false
即无论连接是否成功,程序都会继续执行。于是很自然的把隐患扩散了出去
你至少得在 200 行的 fwrite($this->conn,.... 前,判断一下 $this->conn 是否是资源
而若 $this->connect() 失败,就该转到策略处理程序,还按正常流程进行是没有意义的
if($this->conn) { if($len != fwrite($this->conn, $this->cmd_line.$this->header.$this->post_content,$len)) { $this->status = "发送请求failed"; die($this->status); } } else { die($this->status); }
//问题出在fwrite(....)发送请求失败这里。。。
Notice: fwrite(): in E:\CodeEdit\php\http\001.php on line 213
发送请求failed
你没有判断那个 $this->conn 是否有效
你没有判断那个 $this->conn 是否有效
稍加改进了一些,链接这些都没问题,现在的错误提示是:
对链接http://www.mmkao.com/Beautyleg/201412/7066_9.html发起请求
没有下一页,原因是:匹配image分页组失败
但是getRollLink这个匹配下一页的函数并没有什么问题,我反复测试过,即便从本地保存的网页里读取也没问题,而且在出现这个问题之前,也采集了很多网页,也没出现问题。
对链接http://www.mmkao.com/Beautyleg/201412/7066_5.html发起请求
对链接http://www.mmkao.com/Beautyleg/201412/7066_6.html发起请求
对链接http://www.mmkao.com/Beautyleg/201412/7066_7.html发起请求
对链接http://www.mmkao.com/Beautyleg/201412/7066_8.html发起请求
对链接http://www.mmkao.com/Beautyleg/201412/7066_9.html发起请求
没有下一页,原因是:匹配image分页组失败
改进后的发在这里了: http://blog.csdn.net/free_program_1314/article/details/41805697
举例说明这个存在的问题,比如采集完第九个网页之后,采集第十页的时候出现匹配失败,而这个采集第十页的链接是第九页的网页信息提供的。 打开采集到的第九个文件,读取并匹配下一页的链接是没有问题的。出现这样的情况多次,每次我都尝试从文件读取并匹配下一页的链接都是没问题的。
也就是说匹配下一页的链接,如果有问题,刚开始采集就应该出现这个提示。。。现在的问题是,这个问题不定期出现
不定期出现是正常的,就算是用浏览器访问,偶尔出现页面打不开(刷新一下就好了)不也是正常的吗?
你只要随时检查连接的有效性,并在失效时做出处理就可以了。比如等几秒再次连接
不定期出现是正常的,就算是用浏览器访问,偶尔出现页面打不开(刷新一下就好了)不也是正常的吗?
你只要随时检查连接的有效性,并在失效时做出处理就可以了。比如等几秒再次连接
偶明白了
不定期出现是正常的,就算是用浏览器访问,偶尔出现页面打不开(刷新一下就好了)不也是正常的吗?
你只要随时检查连接的有效性,并在失效时做出处理就可以了。比如等几秒再次连接
这个问题通过检测到匹配失败时,从保存的上一页网页中,提取下一页链接,暂时解决了:
对链接http://www.mmkao.com/Beautyleg/201411/6906_13.html发起请求
没有下一页,原因是:匹配image分页组失败,尝试从文件中读取匹配模式
对链接http://www.mmkao.com/Beautyleg/201411/6906_14.html发起请求
即将采集下一组
对链接http://www.mmkao.com/Beautyleg/201411/6892.html发起请求
对链接http://www.mmkao.com/Beautyleg/201411/6892_2.html发起请求
对链接http://www.mmkao.com/Beautyleg/201411/6892_3.html发起请求
采集了10分钟之后,还是出现请求失败的问题,,,fwrite(),又是这个老问题,应该可以通过重置连接解决
看起来很NB的样子
本文原创发布php中文网,转载请注明出处,感谢您的尊重!
php程序端的采集,php采集程序相关推荐
- 啦啦外卖公众号+小程序 V43.0开源至尊独立版+独家用户授权升级+小程序端+APP源码+小程序端VUE源码安装教程
啦啦外卖跑腿平台开源至尊独立稳定版公众号+小程序 V43.0版系统为独立开源版,最大优势全开源,使用的都知道该系统功能非常强大,是目前外卖平台功能最全的一套系统.拿来即用,也非常合适做二开的朋友,包括 ...
- 12.通过微信小程序端访问企查查(采集工商信息)
12.通过微信小程序端访问企查查(采集工商信息) 需要注意的问题: 一.1.微信端访问企查查小程序需要登录.2.访问抓包获取的url是有时效性的过一段时间就不能用了. http://xcx.qicha ...
- AD转换实验 编写程序利用ADC0804 AD转换器采集电位器的模拟电压,将采集到的数字量在程序中换算成实际采集的模拟电压,并用数码管显示所采集的实际模拟电压值。(如:AD转换后的数字量为128,则
编写程序利用ADC0804 AD转换器采集电位器的模拟电压,将采集到的数字量在程序中换算成实际采集的模拟电压,并用数码管显示所采集的实际模拟电压值.(如:AD转换后的数字量为128,则数码管应该显示2 ...
- 基于PHP采集数据入库程序(二)
在上篇 基于PHP采集数据入库程序(一) 中提到采集新闻信息页的列表数据,接下来讲讲关于采集新闻具体内容 这是上篇博客的最终数据表截图: 接下来要做的操作就是从数据库中读取所需要采集的URL,进行页面 ...
- 微信小程序:开心锤锤超火动态表情包微信小程序源码下载自动采集
这是一款表情包小程序源码 大家刷抖音的时候应该都刷过开心锤锤这个网红卡通短视频吧 现在这一款小程序就是和它有关的 里面的表情包呢大部分都是动态表情包(斗图的时候是不是更炫) 至于里面的表情包人物的就都 ...
- 火车头采集器 采集https网站 以及网站cookie 避免 蜘蛛 爬虫 程序等
火车头采集器 采集https网站 并不是想象中的困难,有时https网站只是用了这个加密协议,但是事实上的数据并没有加密,所以仍然可以采集. 如果确实有困难的可以通过,http分析软件来确认地址,如H ...
- 小程序源码:宅男必备福利壁纸大全自动采集微信小程序
这是一款可以说是宅男的最爱 也可以说是专门给宅男准备的一款小程序吧 里面支持动态视频,静态壁纸,情侣头像等多种分类 保存内容支持每天激励视频解锁保存 全内容自动采集,内附含了数不清的小姐姐,二次元,各 ...
- 小程序源码:自动采集头像大全微信小程序
这是一款以头像为主的一款微信小程序源码 该小程序内包含了各种分类,各种样式都有 可以说是目前最全的一款头像小程序源码 五大分类情侣,女生,男生,卡通,风景 每大分类下面都有N个小分类,每个小分类下面有 ...
- 【小程序源码】自动采集头像大全微信小程序源码支持多分类
这是一款以头像为主的一款微信小程序源码 该小程序内包含了各种分类,各种样式都有 可以说是目前最全的一款头像小程序源码 五大分类情侣,女生,男生,卡通,风景 每大分类下面都有N个小分类,每个小分类下面有 ...
- 小程序源码:自动采集头像大全微信小程序源码支持多分类-多玩法安装简单
这是一款以头像为主的一款微信小程序源码 该小程序内包含了各种分类,各种样式都有 可以说是目前最全的一款头像小程序源码 五大分类情侣,女生,男生,卡通,风景 每大分类下面都有N个小分类,每个小分类下面有 ...
最新文章
- Understand Execution Context
- ESP8266中char数据类型注意事项
- 理性预期学派(Rational Expectation School)
- 使用atp-get安装Python-pip时遇到如下问题,附解决方案
- C 语言异常处理(五十二)
- 利用python语言实现帧差法,python+opencv实现帧差法
- 关于直播,所有的技术细节都在这里了(3)《转载》
- 每日一句20191019
- (转)百度金融联合多方发布国内首单区块链证券化项目 发行规模超4亿
- Java常见加密方式
- 如何设计一款IRR计算器
- python压缩HTML文件,python压缩javascript文件代码
- sentaurus TCAD的安装与使用
- 归并算法(Java实现)
- Effective C++ 学习笔记 第二章:构造、析构、赋值运算
- Layer 1: Single Objects
- 网络电台管理套件AzuraCast
- 深圳市智汇机器人科技有限公司环宇智行
- SecureCRT SSH远程登入connection was reset
- SSM框架实现OA系统