python爬虫入库到帝国cms_帝国小说连载系统合理利用第三方云爬虫缓存章节内容...

帝国CMS技术互助群:540946827 一帮大神带你装逼带你飞!还有漂亮的妹纸陪你玩哦!

帝国小说连载系统如何快速有效的将章节内容缓存至本地呢?

采集初期,为了速度,我们可以批量采集书籍入库,暂不进行内容入库,但是真正想运营起来,内容缓存至本地是必不可少的一步!

那么如何有效的进行缓存呢?

十几万本书,这个章节可是好几千万上亿章,数据量较为庞大,进程少了,速度慢,进程大了,服务器难以支撑。

这里我测试过多种办法,最开始是利用系统自身来进行处理,即通过插件的形式,批量进行请求,线程设置8以内,速度虽有明显提升,但是速度还是不够,如果设置为20个线程以上,速度能明显感觉提升。不过服务器资源不够,容易跑死。

因为线程,需要服务器去承担,缓存内容的时候还是需要服务器去处理。

所以,咱们换一个思维,把请求交给外部,我们服务器只做缓存处理,这样可以节省一大部分资源。

另外,这个请求可以分发给多个云平台,让他们定时去处理,我们只需要做好数据接口即可。

下面直接上代码:

require ('../class/connect.php');

require ('../class/db_sql.php');

require ('../class/functions.php');

require ('../class/t_functions.php');

$link = db_connect();

$empire = new mysqlquery();

$id=RepPostStr($_GET['id']);

$bookid=RepPostStr($_GET['bookid']);

$page=RepPostStr($_GET['page']);

$page=$page?$page:1;

$line=1000;

$start=($page-1)*$line;

$host=$public_r['add_domain'].'/e/action/getlocal.php';

if($id&&$bookid){

$r=$empire->fetch1("select id,islocal,bookid,newstext,urlfrom from {$dbtbpre}ecms_chapter where bookid='$bookid' and id='$id'");

$ret=GetChapterContents($r);

echo json_encode($ret);

}elseif($bookid){

$sql=$empire->query("select id from {$dbtbpre}ecms_chapter where bookid='{$bookid}' and islocal=0 order by pxid asc");

while($r=$empire->fetch($sql)){

$list.='{'.$host.'?bookid='.$bookid.'&id='.$r['id'].'},';

}

echo $list;

}else{

$sql=$empire->query("select id from {$dbtbpre}ecms_book order by id asc limit $start,$line");

while($r=$empire->fetch($sql)){

$list.='{'.$host.'?bookid='.$r['id'].'},';

}

echo $list;

}

db_close();

$empire = null;

?>

安装方法,将该文件放置于/e/action/目录下,命名为“getlocal.php”即可。

如何使用,请自我尝试。

本文系剖要网原创文章,转载请注明来源!

如对本文有疑问,请提交到交流社区,广大热心网友会为你解答!! 点击进入社区

打赏一下,我们会为大家提供更多优质资源!

您的打赏将全部用来搜集更多优质资源!

扫码打赏,你说多少就多少

打开微信扫一扫,即可进行扫码打赏哦

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值