前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自媒体创作利器:借助油猴脚本助你轻松应对热门话题

自媒体创作利器:借助油猴脚本助你轻松应对热门话题

作者头像
AirPython
发布2023-11-20 16:37:31
3381
发布2023-11-20 16:37:31
举报
文章被收录于专栏:Python 自动化Python 自动化

大家好,我是安果!

对于做短视频自媒体的同学来说,在上传视频时需要指定多个热门话题,以此来增加短视频的流量

本篇文章将以抖音创作服务平台、快手创作者服务平台、视频号助手为例,讲解如何借用油猴编写一个插件,实现快速插入热门话题的功能

1、准备

首先,在油猴的管理面板下新增一个脚本

然后,根据预设数据编辑脚本名称、版本号、描述、作者、图标icon、匹配网站、依赖及权限

匹配网站这里分别列出抖音、快手、视频号发布页面的匹配 URL 地址

代码语言:javascript
复制
// ==UserScript==
// @name         一键添加话题
// @namespace    http://www.baidu.com
// @version      1.0.0
// @description  快速添加话题(抖音、快手、视频号)
// @author       星安果
// @icon         data:image/png;base64,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
// @match        https://channels.weixin.qq.com/platform*
// @match        https://creator.douyin.com/creator-micro/content/*
// @match        https://cp.kuaishou.com/article/publish/video*
// @match        https://cp.kuaishou.com/article/edit/video*
// @require      https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js
// @require      https://greasyfork.org/scripts/448541-dom-to-image-js/code/dom-to-imagejs.js?version=1074759
// @grant        GM_xmlhttpRequest
// @grant        unsafeWindow
// @grant        GM_setClipboard
// ==/UserScript==

接着,我们做初始化操作,往页面中添加一个按钮

PS:让按钮显示在页面右上区域

代码语言:javascript
复制
//初始化
function init() {
    let Container = document.createElement("div");
    Container.style.position = "fixed";
    Container.style.color = "red";
    Container.style.right = "5px"
    Container.style.top = "20%"; 
    Container.style["z-index"] = "999999";
    Container.innerHTML = `
        <div style="padding: 0px; border: 1px solid #aaa; border-radius: 21px; float: right; background: #fff; position: relative; ">
        <button id="inputTopic"
        style="padding: 6px;
        width: auto;
        height: auto;
        background-repeat:no-repeat;
        background-size:62px;
        border:0;
        background-color:transparent;
        background:red;
        border-radius:21px;
        color:#fff;
        font-size:10px;
        text-align:center;">标签话题</button>
        </div>`;
    document.body.appendChild(Container);
}

最后,针对该按钮设置点击事件,针对不同的域名做不同的处理

代码语言:javascript
复制
//获取元素,设置点击事件
var inputTopicElement = document.getElementById("inputTopic");
inputTopicElement.onclick = function () {
    let hostname = window.location.hostname
    // console.log(hostname);
    //视频号助手
    if (hostname === 'channels.weixin.qq.com') {
         weixin(wx_topics);
    } else if (hostname === 'creator.douyin.com') {
         douyin(topic);
   } else if (hostname === 'cp.kuaishou.com') {
         kuaishou(topic);
   }
}

2、抖音

打开抖音发布页面,我们对流程进行梳理

添加话题的步骤为:在输入框内输入关键字,最后在下拉选项中选择特定的话题

PS:下拉选项的数据是根据输入内容动态生成的

因此,我们只需要使用 dispatchEvent 触发一个 input 事件

然后等待下拉选项出现我们需要的话题时,模拟一次点击,这样就完成了一个话题的添加

代码语言:javascript
复制
//抖音(单个话题)
function douyin(topic) {
    const myDiv = document.getElementsByClassName("ace-line")[0];
    myDiv.innerText = "#" + topic;

    // 创建一个input事件
    const inputEvent = new Event("input", {
        bubbles: true,
        cancelable: true,
    });

    // 触发input事件
    myDiv.dispatchEvent(inputEvent);

    //等待元素出现
    var waitIntervalId = setInterval(() => {
        const spanElements = $('span[class^="tag-hash-view-name"]');
        if (spanElements.length > 0) {
            spanElements.each(function (index, element) {
                var content = $(element).text();
                if (content === topic) {
                    element.click();
                    clearInterval(waitIntervalId);
                }
            });
        }
    }, 100);
}

3、快手

打开快手发布页面,我们继续对流程进行梳理

PS:快手添加话题的步骤虽然和抖音一致,但是通过上面的代码添加的话题是无效的

快手添加话题的步骤是:需要先点击「 #话题 」按钮,然后手动触发一个 input 事件,接着将光标定位到最后、获取焦点后模拟键盘输入内容,最后在下拉选项中选择特定的话题

代码语言:javascript
复制
//快手(单个话题)
function kuaishou(topic) {
    var divElement = document.querySelector('div[contenteditable="true"]');

    //点击【#话题】按钮
    const spanContent = '#话题';
    const matchingElements = $('span:contains("' + spanContent + '")');
    matchingElements.get(0).click();

    // 创建一个input事件,并触发
    const inputEvent = new Event("input", {
        bubbles: true,
        cancelable: true,
    });
    divElement.dispatchEvent(inputEvent);

    // 将光标定位到最后
    moveCursorToEnd(divElement);
    //聚焦
    divElement.focus()

    //模拟键盘输入(废弃,但是chrome还能使用)
    document.execCommand('insertText', false, topic);

    //等待元素出现
    var waitIntervalId = setInterval(() => {
        const spanElements = $('span[class^="s94sHDtzRU4-"]');
        if (spanElements.length > 0) {
            spanElements.each(function (index, element) {
                var content = $(element).text();
                if (content === topic) {
                    element.click();
                    clearInterval(waitIntervalId);
                } 
            });
        }
    }, 100);
}

4、视频号

微信视频号添加话题可以完全自定义,没有话题提示

所以,我们只需要将话题以特定的格式输入到编辑框即可

代码语言:javascript
复制
//视频号
function weixin(topics) {
    const myDiv = document.getElementsByClassName("input-editor")[0];

    let result = "";
    topics.forEach(element => {
        result += " #" + element;
    });
    myDiv.innerText += result;

    // 创建一个input事件
    const inputEvent = new Event("input", {
        bubbles: true,
        cancelable: true,
    });

    // 触发input事件
    myDiv.dispatchEvent(inputEvent);
}

5、最后

编写完脚本后,默认脚本状态为启用。这样每次我们发布视频时,只需要点击一下右侧的按钮,就可以一键将预设的话题添加到输入框内

上面的内容是针对添加单个话题的场景;大家如果有添加多个话题的需求,可以自行进行扩展

如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-11-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AirPython 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档