最新公告
  • 新添加WordPress仿站助手小工具,方便大家开发制作WP模板的利器 . Wordpress标签生成器
  • 用python 发 帝国cms 文章

    正文概述 仿站吧   2024-11-25 22:30:52  
    创建接口文件:在帝国 CMS 的e/extend目录下创建一个名为jiekou.php的文件,代码如下:

    <?php
    // 引入帝国CMS的核心文件和相关函数库
    require("../class/connect.php");
    require("../class/db_sql.php");
    require("../class/functions.php");
    require("../data/dbcache/class.php");

    $link = db_connect();
    $empire = new mysqlquery();

    // 验证用户
    $loginin = $_POST['username'];
    $lur = $empire->fetch1("select * from {$dbtbpre}enewsuser where `username`='$loginin'");
    if (!$lur) exit('不存在的用户名'.$loginin);
    $logininid = $lur['userid'];
    $loginrnd = $lur['rnd'];
    $loginlevel = $lur['groupid'];
    $loginadminstyleid = $lur['adminstyleid'];

    // 根据是否开启phpmode来引入ftp.php文件
    if ($public_r('phpmode')) {
        include("../class/ftp.php");
    }
    require("../class/hinfofun.php");

    // 获取文章所属栏目等信息
    $navtheid = (int)$_POST['filepass'];
    // 调用AddNews函数添加文章
    AddNews($_POST, $logininid, $loginin);
    // 获取刚发布文章的链接
    $arturl = $empire->fetch1("select titleurl from {$dbtbpre}ecms_news where `classid`='$classid' order by id desc limit 1");

    db_close();
    $empire = null;
    exit($arturl);
    ?>
    编写 Python 发布脚本:使用 Python 的urllib.request库来向jiekou.php发送 POST 请求以发布文章,示例代码如下:
    import time
    import urllib.request
    import urllib.parse

    def post(title, content, catid):
        # 接口地址,需根据实际情况修改
        query = "http://127.0.0.1/e/extend/jiekou.php?pw=123456"
        data_form = {
            "enews": "AddNews",
            "classid": catid,  # 栏目id
            "bclassid": 0,  # 父栏目id
            "id": 0,
            "filepass": int(time.time()),  # 发布文章的时间戳
            "username": "admin",
            "oldchecked": 1,
            "ecmsnfrom": 1,
            "ecmscheck": 0,
            "havetmpic": 0,
            "title": title,
            "checked": 1,
            "isgood": 0,
            "firsttitle": 0,
            "newstime": time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()),
            "writer": "admin",
            "befrom": "",
            "newstext": content,
            "dokey": 1,
            "copyimg": 1,
            "autosize": 5000,
            "istop": 0,
            "newstempid": 0,
            "groupid": 0,
            "userfen": 0,
            "onclick": 0,
            "totaldown": 0,
            "addnews": "提交",
        }
        data = urllib.parse.urlencode(data_form).encode(encoding='utf-8')
        req = urllib.request.Request(query, data=data)
        res = urllib.request.urlopen(req, timeout=10)
        result = res.read().decode('utf-8')
        print(result)

    if __name__ == "__main__":
        # 从文本文件中读取文章内容,每行格式为 标题####内容
        content_list = (line.strip() for line in open("duanwenxue.txt"))
        for wz in content_list[:5]:
            text = wz.split("####")
            title = text[0]
            content = text[1]
            print("开始发布:", title)
            post(title, content, 1)
    上述代码中,post函数用于向帝国 CMS 发送文章发布请求,在__main__函数中,从一个文本文件中读取文章标题和内容,并循环调用post函数来发布文章,每次发布的文章都归属到栏目 id 为 1 的栏目下,你可以根据实际情况修改文本文件路径、栏目 id 等信息
    仿站吧,一个优质的源码资源平台!
    仿站吧 » 用python 发 帝国cms 文章