分类: 源码/模板

  • Discuz防采集设置如何开启

    Discuz防采集设置如何开启

    如何保护好discuz论坛的内容不被别人采集,可以在论坛网站后台开启discuz防采集设置。

    方法/步骤

    1. 打开discuz网页后,直接点击打开登录页面,在登录页面输入管理员帐号和密码,然后点击登录,如下图所示。
      8601a18b87d6277f9cb80f3b24381f30e924fc0e
    2. 成功登录后,直接点击导航上面的【管理中心】,如下图所示。

      b7fd5266d0160924614d9f18d80735fae6cd344c
    3. 点击后跳转到discuz管理中心认证页面,直接输入密码,然后点击提交,如下图所示。
      d50735fae6cd7b894e040780032442a7d9330e4c
    4. 成功登录discuz管理中心后,直接点击导航栏里的【全局】,如下图所示。
      9213b07eca806538588d99109bdda144ad348249
    5. 在点击左侧全局列表里的【防采集设置】选项,如下图所示。
      0b55b319ebc4b745aafc8a15c3fc1e178a82154c
    6. 在打开的discuz防采集设置页面后,直接点击【是】开启防采集,如下图所示。
      8b13632762d0f7038818a8df04fa513d2697c50e
    7. 选择是后会显示出设置防采集的具体内容,然后根据提示填写,最后勾选哪些内容是要防止采集的,设置好后直接点击提交,如下图所示。
      7af40ad162d9f2d3457a19eca5ec8a136327cc4d
    8. 点击提交后,discuz提示当前设置更新成功。

    当然,这种防采集很容易被突破,参见这篇文章

    [b2_insert_post id=”217″]

  • 赞片苹果v10自适应模板带明星新闻模板pc+wap影视网站模板

    赞片苹果v10自适应模板带明星新闻模板2019pc+wap影视网站模板

    全网发布!请放心购买! 本网站亲测可以正常安装使用 保证正品 请您放心购买 本宝贝上架的均有货 可放心购买 由于网站程序具有可复制性 一经发出 商品拒绝退款和退货  温馨提示:请购买者不要说别家怎么价格低之类的话语,本站所有宝贝保证您的使用安全,绝无后门,保证网站安全性!别家卖多少钱是别家的事情,您敢放心用就行!本站保证使用安全性。

    1.本套网站支持苹果CMSV10程序,模版为自适应模板,有新闻,演员,直播留言等等。

    2.本套网站超强SEO优化和细节都是精心处理,删除许多多余代码,优化js调用,模版干净无错,绝非论坛等其他地方免费分享的带有后门和木马的垃圾程序。

    3.网站很多亮点功能本地反复安装调试完成美无错.请你放心使用

    4.在使用网站过程中的任何问题请和我们联系我们会不断更新.完善.我们努力为您创造更为全面,可靠的好用的网站。

    5.特别说明:使用请遵循国家法律法规。若因非法使用引起纠纷,一切后果由使用者承担。

    此为苹果CMS10的电影模板费用,包含了电脑版和手机版,如果还有其它需求请联系我们处理!

    网站演示地址:www.laotiedyw.com  保证模板和演示站一模一样,请您确定好后购买!

    网站支持电脑版、手机版、微信公众号以及APP!

    [b2_insert_post id=”345″]

  • 船说4.2破解开源完整版(简繁转移、长尾词插件、开源无加密)

    船说4.2破解开源完整版(简繁转移、长尾词插件、开源无加密)

    2023年9月15日 修复了长尾词页面打开404的Bug

    2023年8月9日 修复了长尾词插件不完整及后台操作的BUG

    2023年7月15日 长尾词插件不完整,功能不能正常使用

    使用环境: php5.6 – php8.x (开发环境php7.3)

    使用教程,

    1. 上传三个文件夹 ( www, shipsay, themes ) 到服务器
    2. 将网站的入口文件指向 /www/index.php (或运行目录用 /www), 宝塔用户请”关闭防跨站攻击”
    3. 建立数据库: ( 建子站,请跳过这步 ) 3.1、使用船说做源站:
      新建空白数据库
      导入 /sql/船说优化版.sql ( 或 /sql/船说分表版.sql )
      所有选择编码的地方都选择 utf8 3.2、使用杰奇做源站
      在杰奇数据库中导入 /sql/update.sql
    4. 配置服务器伪静态 ( 伪静态规则在最后 )
    5. 浏览器打开 http://你的域名/admin/ 进入后台, 完成最后配置.

    其他:

    • 免维护站点地图
      访问地址:
      百度: http://你的域名/sitemap/sitemap.xml
      神马: http://你的域名/sitemap/sm_sitemap.xml
      物理文件: /www/sitemap/, 可点开文件看使用说明.

    * 伪静态规则 **

    rewrite ^/sitemap/sitemap_([0-9]+).xml$  /sitemap/ss_sitemap.php?page=$1;
    rewrite ^/sitemap/sitemap.xml$  /sitemap/ss_sitemap.php;
    rewrite ^/sitemap/sm_sitemap_([0-9]+).xml$  /sitemap/sm_sitemap.php?page=$1;
    rewrite ^/sitemap/sm_sitemap.xml$  /sitemap/sm_sitemap.php;
    if (!-d $request_filename){
    	set $rule_0 1$rule_0;
    }
    if (!-f $request_filename){
    	set $rule_0 2$rule_0;
    }
    if ($rule_0 = "21"){
    	rewrite ^/(.*)$ /index.php last;
    }

    Apache 伪静态: 无需设置.

     IIS伪静态规则

    <?xml version="1.0" encoding="UTF-8"?>
    <rules>
        <rule name="ShipSay SiteMap for ss_page">
            <match url="^sitemap/sitemap_([0-9]+).xml$" ignoreCase="false" />
            <action type="Rewrite" url="sitemap/ss_sitemap.php?page={R:1}" appendQueryString="false" />
        </rule>
        <rule name="ShipSay SiteMap for ss_index">
            <match url="^sitemap/sitemap.xml$" ignoreCase="false" />
            <action type="Rewrite" url="sitemap/ss_sitemap.php" />
        </rule>
        <rule name="ShipSay SiteMap for sm_page">
            <match url="^sitemap/sm_sitemap_([0-9]+).xml$" ignoreCase="false" />
            <action type="Rewrite" url="sitemap/sm_sitemap.php?page={R:1}" appendQueryString="false" />
        </rule>
        <rule name="ShipSay SiteMap for sm_index">
            <match url="^sitemap/sm_sitemap.xml$" ignoreCase="false" />
            <action type="Rewrite" url="sitemap/sm_sitemap.php" />
        </rule>    
        <rule name="ShipSay CMS" stopProcessing="true">
            <match url="^(.*)$" ignoreCase="false" />
            <conditions logicalGrouping="MatchAll">
                <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
                <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
            </conditions>
            <action type="Rewrite" url="index.php" appendQueryString="true" />
        </rule>
    </rules>
    

    关于长尾词插件的说明,本4.2版本长尾词插件不完整。完整版请到此下载

    此版本已替换为完整版本,如需要单独长尾词插件,请到以下地址

    [b2_insert_post id=”5200″]

    gggg20230703092224
    wfg230703093136

    修复完如下图:

    111fffw120230703092506
    qqqw20230703092527

    船说CMS4.2全开源小说站群程序,外带长尾词插件最新版。程序功能就不多介绍了,比较强大威猛,这里直接上图。本程序船说cms 这个版本的功能已经非常完善,后期不需要在去增加额外的功能了,做小说的都知道,无非就是性能和资源的快慢,在此之前我们从2.4版本一直发布到目前的3.7版本,使用反馈非常好,因为代码全部开源,我们去除了一些作者自己加入的无用验证授权逻辑代码,这样减少了一些无用的请求,并且大家用了之后开源的才放心,否则网站做起来被人黑了太不值得了!

    现在这款我们同时把长尾词插件也加入了进来(具体效果看截图),原版本的船说cms长尾词插件也是加密的,我们也做了解密做到了整套程序完全性的开源!

    sssffd333fc00ec1d26798

    注意事项

    1、如果开启Redis需要数据库为外网,打开/shipsay/class/router.php 第164行将127.0.0.1改成你的数据库服务器IP(数据库记得开启外网访问/安全性可以指定访问 宝塔有这个功能)

    这个程序缓存可以使用的,是CENTOS 安装的redis版本兼容问题redis版本为6.0.6,改为5.0.8有用2、船说cms长尾词插件使用空白原因: 那是因为模板使用tpl_info.php或tpl_indexlist.php的不同,如果使用tpl_info.php那么就不需要改动。如果模板使用的是tpl_indexlist.php空白解决方法:shipsay/app/info_langtail.php将“require_once __THEME_DIR__.’/tpl_info.php’;”改为“require_once __THEME_DIR__.’/tpl_indexlist.php’;”

    功能增加:
    增加静态首页生成
    增加神马结构化站点地图
    增加TXT下载和小说推荐功能
    增加Gzip选项,通过压缩网页从而大幅提升访问速度. ( 注: 如服务器已开启Gzip, 则效果不明显. )
    增加搜索记录开关
    数据库增加 “持久连接” 选择
    路径增加小说拼音方式: 如 /book/cangyuantu.html

    源码优化:
    SEO 优化: 增加 Last-modified 返回
    对文本内容特殊符号 ( 如: & < > 等 ) 的优化处理
    数据库 “测试连接” 更准确

    船说CMS前台演示效果

    ssdfbb2-13552aef02517ed

    船说CMS后台功能演示效果

    111683798438-c27b4ac3820bc43
    221683798431-d1824301fd5b73b
    33683798435-c26671041ac050f
    441683798436-45acc9c93fbfe44
    551683798434-1c603e9c2804ead
    661683798433-22f9ba0c939bc23
    771683798437-059433452069fdf
    881683798448-5c70c6a4f42f745
    99683798450-ba856ba89478f04
    10101683798439-ec007b2f23f29bc
    11111683798449-f02d89376b03a69
    12121683798446-35c702c99a4c70d
    1313683798447-ec7fe6a3eac5398
  • 最新版PTCMS小说程序源码4.3.0

    最新版PTCMS小说程序源码4.3.0

    注意,此源码非开源源码。代码是swoole加密的,需要安装swoole组件。

    全新开发,新版UI,添加原创专区,新闻发布,书单发布,采集日志,百度推送,神马推送,推送日志功能。

    前端高仿起点小说网,自适应模板,可以分设手机域名。

    后端采用LAYUI全新开发。

    一、服务器环境得要求

    宝塔环境

    推荐linux环境,win得也支持,不过没去测试搭建,自行按照下面得教程测试,下面是我得搭建环境

    nginx1.15     MySQL5.5      php7.3 (重要:必须7.3)  

    安装php拓展   fileinfo    memcached   swoole4   

    扩展安装

    删除禁用函数

    2.安装加密Loader

    进入php7.3设置,在配置文件里面末尾添加代码

    extension=/www/网站路径/loader73.so
    swoole_license_files=/www/网站路径/license
    
    代码安装好后,重启PHP或者重载配置
    

    3.配置网站

    3.1 设置目录

    在宝塔指定网站运行目录为public,不是根网站目录!

    3.2 宝塔伪静态设置

    if (!-e $request_filename) {
        rewrite ^/(.*)  /index.php?s=$1 last;
    }

    4.配置采集

    修改host

    vim /etc/hosts

    106.13.47.93 api.kxcms.com api.ptcms.com

    5.安装程序

    安装地址:域名/install.php,然后输入用户名、数据库名、数据库密码。

    安装完毕后,不想官方发现你的域名,最好更改后台统计代码数字和public/static/admin/index.js文件的统计代码数字,即百度统计id更换为自己的。

    手机端、MIP、AMP的搭建方法和主端一样,域名都指向运行目录,搭建后需在网址后台域名设置填写相对于域名即可访问相应网址。

    6. 配置cron

    主进程状态失败-任务开关开启教程:

    PT后台-采集管理-任务管理-任务设置将任务开关开启,否则会报主进程关闭错误
    SSH输入:cd  /www/wwwroot/网站目录,进入网站目录
    复制/www/server/php/73/bin/php kx cron:check ssh,提示主进程开启则安装完成(73PHP版本,自行修改) 后台运行监控刷新
    创建计划任务
    登陆宝塔后台-计划任务,任务类型为shell脚本,脚本内容为php /www/wwwroot/网站目录/kx cron:master >>/dev/null 2>&1 时间自行填写,保存执行即可

    后台预览

     

  • 船说cms4.01,对接小浣熊漫画

    船说最新版本是4.2,请访问以下链接了解详情

    [b2_insert_post id=”320″]

    船说cms4.01,对接小浣熊漫画

    船说cms4.0.1版本免费分享下载啦,前几天网上买来的玩玩,免费分享给大家用,嘿嘿 我是不是宅心仁厚,卖家说这个是船说无限制全开源的站群版还支持php8哟,压缩包里有船说cms安装教程你们自己搭建看吧搭建方法很简单,程序也很简陋,简陋到访问后台竟然都不需要密码验证太神奇了,搭建好后只能修改后台文件夹名称来防止别人登录,看网上说船说cms是杰奇套壳的小说源码程序,安装的时候看见有两个数据库,优化版和分表版,两个我都安装测试了,看到优化版的数据库里面有几个数据表名称竟然都还是jieqi_开头命名的,杰奇套壳是可以坑定了嘛。。。

    202110311635691993580471

    安装好访问后台,后台真是简陋就简单的网站名称和小说txt以及小说封面图片路径等一些简单的和前台url设置,另外有个redis缓存功能和长尾词功能,船说cms繁体插件还是很不错的其它的没啥东西,会员功能都没有前台都不支持注册会员。。。

    不过船说cms自带的模板还是挺好看的船说cms电脑pc模板和手机wap模板都挺好看,船说cms运行速度还是不错的挺快不卡,数据毕竟是采集到本地硬盘的嘛,访问看小说就是爽。。。

    船说ShipSay支持百度地图和神马地图自带生成哦源码目录里有php文件,类似于船说cms插件的存在吧后台没有设置的选项菜单;

    202110311635691987654913

    听说船说cms3.7.8版本有会员功能比船说cms4.0.1版本功能要多一点,也不知道真假,我没有买,想着新的总比旧的实用嘛,所以就买了个新一点的的玩玩,我看官网好像发布船说cms最先源码了船说cms4.1版本,船说cms授权官网好像需要1000元,正规做站还是买正版靠谱点;

    总体来说船说cms4.0.1功能很少正规使用还是可以船说cms二开一下然后一起开发一套船说cms模板那就爽呆呆了;

    船说cms采集小说windows系统的话一般和杰奇一样使用关关采集器(船说cms规则关关的还是挺多的);

    linux系统可以使用python采集器,专业爬虫就是牛比,有人说php采集比python快有能力的可以测试一下,我没测试过(python现在真是流行,“人生苦短,我用Python”英文原句:Life is short,you need Python);

    快来用船说cms4.0.1版本配合python开发的linux采集器来搭建小说原站吧;

  • 牛犇CMS免费小说站群系统安装使用

    牛犇CMS免费小说站群系统安装使用

    自主开发,支持杰奇所有版本

    自定义书号 自定义章节ID 自定义url 首页随机获取书籍ID 长尾词 可自己diy属于自己的站 让你只用一个库可以做出无限个不同的站 省去多库的烦恼 是最简单最容易功能最健全的小说站群程序

    使用船说类似结构,可以直接从船说转到牛犇CMS

    本站提供的是授权版破解版,突破所有限制。购买链接

    [b2_insert_post id=”434″]

    安装

    首先环境建议使用Linux,LNMP

    上传文件到web目录,然后导入数据库脚本。

    访问后台,即可配置数据库相关信息,配置完成后就可以登陆后台了。

    注意要先配置一下仿静态规则,否则可以无法正常访问。

    if (!-d $request_filename){
    set $rule_0 1$rule_0;
    }
    if (!-f $request_filename){
    set $rule_0 2$rule_0;
    }
    if ($rule_0 = “21”){
    rewrite ^/(.*)$ /index.php last;
    }

    后台设置

    444bac111a209d743049910c48a8cadb429-1
    555bfb217bc4f134ffe9efff8644bbf19f4-1
    77770e5421c71a814f48915ae9015a509f17-1
    8886f30c2687c2e4a1e829368d7e801b0a6-1
    9997e5a60d8d89b4039810f0c8868db858a-1
    000059815696e1c74816a986ec839b386a44-1
    110dc3941833794d96b2fbeb89f3360f7d-1
    1275680fb860cc42c49d02a8a546af7c7d-1
    13d6b9b07aa03438fa99b9e65e9d5a9c7-1
    1461e0df2f92148beab87e9ab8bd34b69-1
  • 量子非凡资源站去广告的代码,把里面的域名换成自己的域名就可以了!

    量子非凡资源站去广告的代码,把里面的域名换成自己的域名就可以了!

    <?php
    error_reporting(0);
    //关闭所有PHP错误报告
    define('IFHC',1);
    //是否缓存视频链接 1 缓存 0 不缓存
    define('HCFILE',__DIR__.'/cache/');
    //缓存保存的文件夹 如果不缓存请无视
    define('HCTIME',604800);
    //缓存时效 秒为单位 如果不缓存请无视
    header('Content-type: text/json;charset=utf-8');
    
    $url = $_GET['url'];
    $MD5 = Md5($url).'.m3u8';
    if (is_dir(HCFILE)==false) {
      mkdir(HCFILE,0755,true);
    }
    if (IFHC==1 && file_exists(HCFILE.$MD5) && filemtime(HCFILE.$MD5) + HCTIME > time()) {
      $arr = array(
        'code' => 200,
        'msg' => '解析成功',
        'cache' => true,
        'url' => 'https://www.wucuoym.com/cache/'.$MD5
      );
      die(json_encode($arr,456));
    }
    $data = curl($url);
    if (empty($data)) {
      die(404);
    }
    if (strstr($data,'.ts')==false) {
      $explode = explode('/',$data);
      $ts = explode("\n",$explode[0])[2];
      $url = str_replace('index.m3u8','', $url).$ts.'/'.$explode[1].'/'.$explode[2];
      $data = curl($url);
    if (empty($data)) {
      die(404);
    }
    }
    echo m3u8ts($url,$MD5,$data,$explode[2]);
    
    
    function m3u8ts($wz , $file , $data , $name){
        $data = preg_replace('/#EXTINF:(.*),\n?http(.*)\n?/','',$data);
        preg_match('/\/\/(.*)\/'.$name.'/',$wz,$ym);
        $web = 'https:'.str_replace($name,'', $ym[0]);
        $m3u8 = preg_replace('/#EXTINF:(.*),\n?(.*)\n?/',"#EXTINF:$1,\n$web$2\n",$data);
        file_put_contents(HCFILE.$file,$m3u8);
        $arr = array(
          'code' => 200,
          'msg' => '解析成功',
          'url' => 'https://www.wucuoym.com/cache/'.$file
        );
        die(json_encode($arr,456));
        return;
    }
    function curl($url) {
    if(!function_exists('curl_init')) die('php.ini未开启php_curl.dll'); 
      $user_agent = $_SERVER['HTTP_USER_AGENT'];
      $ch = curl_init(); 
      curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        "accept: */*",
        "accept-encoding: gzip, deflate",
        "accept-language: zh-CN,zh;q=0.9",
        "Connection: keep-alive",
      ));
      curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36');
      curl_setopt($ch, CURLOPT_REFERER,'https://www.wucuoym.com/');
      curl_setopt($ch, CURLOPT_ENCODING, "gzip, deflate");
      curl_setopt($ch, CURLOPT_URL, $url);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
      curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
      @ $file = curl_exec($ch);
      curl_close($ch);
      return $file;
    }
    PHP
  • 突破Discuz!的防采集

    突破Discuz!的防采集

    当短时间内频繁采集discuz,会触发discuz的防采集机制,默认打开的是一段javascript脚本,然后再通过跳转跳转到真实地址,这样子的情况下如何采集呢,本文将教会你如何破解这类型的防采集的采集。

    Discuz开启防采集后的采集方法,也就是帖子后面加了?dsign=这样子的

    Discuz在X3中增加了防采集功能,具体见Discuz x3.0防采集设置图文教程

    [b2_insert_post id=”558″]

    开启防采集后,访问DZ站点的伪静态链接如http://www.discuz.net/thread-3275423-1-1.html后面会跟上一个?_dsign=xxxxxx,正常链接如http://www.discuz.net/forum.php?mod=viewthread&tid=3305274会加上&_dsign=xxxxxx。这让人很不爽 (o#゜ 曲゜)o

    使用httplib2访问原帖子页面(下面以http://www.dz.net/forum.php?mod=viewthread&tid=768为例),返回的是一段混淆过的js,如:

    <script type="text/javascript">RKbW=function(){'RKbW';var _R=function(){return '=76'}; return _R();};function AIV(AIV_){function _A(AIV_){function ph(){return getName();}function AIV_(){}return ph();return AIV_}; return _A(AIV_);}DmZP='iew';_IX161 = 'assign';function zoQ(zoQ_){function ti(){return getName();};return ti();return 'zoQ'}function r2oe(){'return r2oe';return 'ad&'}_eloda = 'replace';F59s=function(){'return F59s';return 'p?m';};HP=function(){'return HP';return 'n';};function getName(){var caller=getName.caller;if(caller.name){return caller.name} var str=caller.toString().replace(/[\s]*/g,"");var name=str.match(/^function([^\(]+?)\(/);if(name && name[1]){return name[1];} else {return '';}}uM=function(){'return uM';return '9';};eG9=function(eG9_){'return eG9';return eG9_;};function kp(kp_){function _k(kp_){function o(){return getName();}function kp_(){}return o();return kp_}; return _k(kp_);}vD='1';BN=function(){'BN';var _B=function(){return 'r'}; return _B();};HALw='rum';_RZnE9 = 'href';o5y=function(o5y_){'return o5y';return o5y_;};function PH(){'return PH';return '.'}_BDkwZ = location;function w2(){'return w2';return '_'}KTI4=function(){'return KTI4';return '910';};_NUuAJ = window;wX=function(){'wX';var _w=function(){return 'd'}; return _w();};iyL=function(iyL_){'return iyL';return iyL_;};location.replace((function(){'return Q8mM';return '/fo'})()+HALw+PH()+AIV('Gs8')+F59s()+kp('nm')+(function(){'return njFH';return (function(){return 'd=v';})();})()+DmZP+eG9('th')+BN()+(function(){'return XD';return 'e'})()+r2oe()+zoQ('yKM')+wX()+RKbW()+'8&'+w2()+o5y('ds')+iyL('ig')+HP()+(function(){'return l26W';return '=6f'})()+uM()+(function(){'return by';return (function(){return '7';})();})()+KTI4()+vD);_NUuAJ['href']=(function(){'return Q8mM';return '/fo'})()+HALw+PH()+AIV('Gs8')+F59s()+kp('nm')+(function(){'return njFH';return (function(){return 'd=v';})();})()+DmZP;</script>

    显然这样人类是无法理解的……不过使用notepad++的JSFormat插件格式化后还是能看懂的嗯-v-

    实际上这是一个字符串替换然后重定向的脚本,生成原理如下(不完全按照上面的例子):

    • 原始字符串为location.href=forum.php?mod=viewthread&tid=768&_dsign=6f979101
    • 随机分割这个这个串,如分成l, oc, a, tio, n., ……
    • 对每一个子串替换成一个随机命名的函数,如l替换成_Oc9S(),则在脚本里加一句function _Oc9S(){return ‘l’;}以此类推
    • 每个function都可能加入奇怪的例如’return l;’这样毫无意义的混淆
    • 最后在末尾加上window.href=yyy,yyy为取forum.php?mod=viewthread&tid=768&_dsign=6f979101的前x个字符后得到一个子串

    我大概写得不清楚……就……这么个意思……

    [content_hide]

    毫无疑问要使用PyV8了,本来想自己写个解释器,但是算法太渣只能呜呼哀哉QAQ
    这里有个问题,PyV8只是一个js解释器的包装,不是浏览器的js运行时,因此location啊window啊都是undefined的,所以要手动把这些都去掉。(有一点要说明,就是由于js很骚,location.href有时会被写成location[‘href’],或者用location.assign或者location.replace,而assign和replace都可能被一个随机命名的变量替换掉了)

    dz-anti-anti-crawler

    直接看代码吧

    import PyV8
    import re
    js='''<script type="text/javascript">.........</script>'''
    #去掉<script>标签
    js=js[31:-9]
    for st in ['window','location',"'assign'","'href'","'replace'"]:
    equal=re.findall('[_A-Za-z0-9 =]+%s;'%st,js)#找到变量赋值等式
    if equal==[]:#有可能没有
    continue
    else:
    equal=equal[0]
    var=equal.split('=')[0].strip()#找出变量名
    #把等式干掉
    js=js.replace(equal,'')
    #把变量替换成它真正的意思
    js=js.replace(var,st)
    #把['xx'] 替换成 .xx
    js=js.replace("['%s']"%st.strip("'"),'.%s'%st.strip("'"))
    #将 window.href= 后的内容踢掉,因为当PyV8只输出最后一个等式的值
    if re.findall('window\.href=.+',js)!=[]:
    js=js.replace(re.findall('window\.href=.+',js)[0],'')
    #删掉location.xxx=
    js=js.replace('location.href=','').replace('location.replace','').replace('location.assign','')
    #交给你了-v-
    ctxt2 = PyV8.JSContext()
    ctxt2.enter()
    print ctxt2.eval(js)

    这样就得到了包含dsign的新url,可以继续爬了

    最后对DZ的防采集再说几句

    1. 防采集是对IP不对用户的
    2. 而且要看站长的设置,有可能只对帖子或日志等开启;你们可以到Discuz x3.0防采集设置图文教程感受一下
    3. _dsign的值是固定的,计算完一次js后可以考虑保存起来,以后可以直接访问加上_dsign的url
    4. 防采集是针对不支持js的机器人的,如果用python直接控制浏览器的话,可以无视之
    5. 如果mechanize和PyV8能合体那该多好~ o(* ̄▽ ̄*)o

    [/content_hide]

  • 漫城CMS(mccms)开源全源码

    漫城CMS(mccms)开源全源码

    漫城CMS程序是一套采用CI框架内核进行开发,在PHP+MYSQL环境下运行的完善而强大的快速建站系统。经过近多年的开发经验和技术积累,漫城CMS程序即将成为全网最强漫画+小说系统,在易用性和功能上已经成为同行中的佼佼者。MVC模板分离,内置标签,自定义函数标签接口,前后端分离全部100%开源。为开发者赋能,助力企业发展、国家富强,致力于打造最受欢迎的数字阅读项目

    运行环境

    Apache/Nginx/IIS
    PHP 5.3 ~ 7.4
    MySQL 5.5 ~ 5.8
    

    使用协议

    请您在使用(漫城CMS)前仔细阅读如下条款。包括免除或者限制作者责任的免责条款及对用户的权利限制。您的安装使用行为将视为对本《用户许可协议》的接受,并同意接受本《用户许可协议》各项条款的约束。
    1、安装和使用:
    (漫城CMS授权提供给您使用的,您可安装无限制数量副本。 您必须保证在不进行非法活动,不违反所在国家相关政策法规的前提下使用本软件。
    2、协议规定的约束和限制:
    禁止在(漫城CMS)整体或任何部分基础上发展任何派生版本、修改版本或第三方版本用于重新分发销售。

    免责声明

    漫城CMS是一款开源漫画小说cms系统。程序的著作权均归作者所有,用户具有自由的使用权。
    1、您承诺秉着合法、合理的原则使用 漫城CMS系统,不利用 漫城CMS系统 进行任何违法、侵害他人合法利益等恶意的行为,亦不将 漫城CMS系统 运用于任何违反我国法律法规的 Web 平台。
    2、任何单位或个人因下载使用 漫城CMS系统 而产生的任何意外、疏忽、合约毁坏、诽谤、版权或知识产权侵犯及其造成的损失 (包括但不限于直接、间接、附带或衍生的损失等),本团队不承担任何法律责任。
    3、用户明确并同意本声明条款列举的全部内容,对使用 漫城CMS系统 组件库可能存在的风险和相关后果将完全由用户自行承担,本团队不承担任何法律责任。

  • PTCMS 4.0 开源源码

    PTCMS 4.0 开源源码

    由于本站系统升级,此源码已迁移到以下页面:

    [b2_insert_post id=”3700″]

    无加密解密版源码,对ptcms优化,支持PHP7.2、MySQL5.7

    非4.2.8或4.3.0版本,但功能差不多。