如何让DEDECMS支持部分采集
如何让DEDECMS支持部分采集
D ED E CM S自带的采集功能虽然比不上其他专业的采集软件但对比其他采集程序在性能上还是非常不错。很多其他程序无法采集下来的网页使用DEDECMS可以采集得到。 比如58同城首页使用discuz的下载函数采集过来的都是一片空白或者警告内容但是使用dedecms的下载完全可以下载下来。
D ED E采集程序原理
DEDECMS的采集原理很简单 通过PHP程序socket模拟HTTP请求下载整张网页的HTML。不过这里面有一个不足之处——不支持部分采集。如果我们仅仅要获得对方网页的标题却下载了整张网页。一两张无所谓但是大量的下载就会挤占服务器资源和带宽。 比如商务大陆网35dalucom的分类信息网站大全该频道含有600多分类信息网站 网站程序后台自动定期获取这些网站的标题 以判断这些网站是否可以正常打开 内容是否发生改变。如果使用dede的程序直接默认下载整张网页而不是仅网页HTML头部部分长期下去可想而知会挤占多少服务器资源。此时我们此处仅仅需要获得对方网页的标题而已。
修改文件dedehttpdown.class.php
要让D E D E CM S实现部分采集的功能非常简单 只需要修改采集程序文件dedehttpdown.class.php中的2个地方即可。使用notepad++或者dreamweaver打开/include/dedehttpd. class.php
1第118行$this->m_html = ' ' ;背后加入$this->dataLimit =
0;
2第285行$this->m_html .= fgets($this-& gt;m_fp,256) ;背后加入if($this->dataLimit > 0 && strlen($this->m_html) > $this->dataLimit) break;保存即可。
使用方法
$remoteURL = ‘http://www.35dalu. com/info/fabu/’ ;
$dh = new DedeHttpDown() ;
$dh->OpenUrl ($remoteURL) ;
$dh->dataLimit = 1024;
$remoteHTML = $dh->GetHtml() ;
我们只需要在$dh->OpenUrl ($remoteURL) ;背后加入$dh->dataLimit =1024; (你想采集的字节大小即可。 通过这样的方法我们可以更节约服务器资源。 by 35dalu.com
飞讯云官网“飞讯云”是湖北飞讯网络有限公司旗下的云计算服务品牌,专注为个人开发者用户、中小型、大型企业用户提供一站式核心网络云端部署服务,促使用户云端部署化简为零,轻松快捷运用云计算。飞讯云是国内为数不多具有ISP/IDC双资质的专业云计算服务商,同时持有系统软件著作权证书、CNNIC地址分配联盟成员证书,通过了ISO27001信息安全管理体系国际认证、ISO9001质量保证体系国际认证。 《中华...
感恩一年有你!免费领取2核4G套餐!2核4G轻量应用服务器2核 CPU 4GB内存 60G SSD云硬盘 6Mbps带宽领取地址:https://cloud.tencent.com/act/pro/lighthousethankyou活动规则活动时间2021年9月23日 ~ 2021年10月23日活动对象腾讯云官网已注册且完成实名认证的国内站用户(协作者与子用户账号除外),且符合以下活动条件:账号...
前天,还有在"Hostodo商家提供两款大流量美国VPS主机 可选拉斯维加斯和迈阿密"文章中提到有提供两款流量较大的套餐,这里今天看到有发布四款庆祝独立日的七月份的活动,最低年付VPS主机13.99美元,如果有需要年付便宜VPS主机的可以选择商家。目前,Hostodo机房可选拉斯维加斯和迈阿密两个数据中心,且都是基于KVM虚拟+NVMe整列,年付送DirectAdmin授权,需要发工单申请。(如何...