使用GPT写了一个油猴脚本,解决我的大问题!
哈喽,大家好,我是老表,学 Python 编程,找老表就对了。
大家好,我打算每日花1小时来写一篇文章,这一小时包括文章主题思考和实现,今天是日更的第8天,看看能不能被官方推荐。(帮我点点赞哦~)
今天的主题是:使用GPT写了一个油猴脚本,解决我的大问题,如果这篇文章对你有所帮助或者你觉得写的还行,欢迎你点赞/分享给你的朋友、她、他,一起成长。
也欢迎大家留言,说说自己想看什么主题的Python文章,留言越具体,我写的越快,比如留言:我想看Python 自动操作Excel 相关文章。
如果你有具体的需求想通过使用Python实现自动化,那将更好,欢迎私聊我微信,一起交流探讨。
需求来源
最近在写 Python自动化案例50+ ,里面有些案例是从公众号里摘选的,就会从公众号复制文案和代码。
复制粘贴到小报童,检查过都没问题了,点了保存再看就发现多了很多
。
解决问题
第一次看到上面问题的时候感到很头疼,准备一个个手改,但改着改着感觉不对劲啊,这修改成本了太大了,浏览器页面也没有 VS code里的查找然后全部替换。
但又想了想,是不是可以写个什么工具去实现这个,这时突然我的谷歌浏览器页面右上角闪了下,想到了油猴,油猴(Tampermonkey)是一个超级流行的浏览器扩展,它允许用户自定义网页上的 JavaScript 脚本,以增强或修改网页的功能和外观。
需求很明确了:写一个油猴脚本实现以下功能,批量将页面的某字符串变成其他字符串。
但我不熟悉 JavaScript 啊,这个咋搞?这要是放1年半前,我肯定就吭呲吭呲的浏览器搜索如何写油猴脚本,JavaScript 基础语法,一个个看、测试了,估计不下2天拿不下来!然后就放弃了!
但如今,AI时代,有 GPT 这个人工智能助手,搞定这样的自动化需求只需1小时不到(如果你本身对相关领域了解,可能需要时间更少)。
一共三个问题解决我这需求,前两个问题是需求分析确认的,最后一个是学习脚本内容的,具体如下图所示。
角色定义
设定一个角色,很重要,这样AI回复的内容会更满足你的需求。GPT脑袋里装了很多东西,设置角色的作用是让他在该角色细分领域去理解和回答你的提问。
问题1: 写一个油猴脚本实现以下功能,批量将页面的某字符串变成其他字符串。
你的提问越完善,GPT 回复内容就越准确,所以每一次提问请都先思考:我要问的是这个吗?提问是一门艺术,欢迎大家交流。
PS: 经常遇到读者加我微信后这样提问:我程序出现 xxx 错误,怎么办?也不给相关代码截图,也没有具体报错截图。
问题2: 需要等页面加载完成后再替换,另外弹框让用户输入要替换的文本,和新文本,用户点击确认后开始替
进一步补充需求。
问题3: 解析下这个脚本里 JavaScript 相关知识,我是一个刚接触 JavaScript 的学习者
作为学习者,一定不要过分依赖 GPT,要从它着学到怎么做,还需要学到为什么这样做、具体是如何做的。
油猴脚本配置说明
脚本代码有了,接下来就是配置脚本了~首先点击油猴拓展--添加新脚本。 输入新脚本内容,主要需要配置下 // @match *://xiaobot.net/*
这个表示脚本在哪些网站生效,我这里匹配的是小报童网站。然后保存即可。 效果展示:
别看这只是一个小脚本,举一反三,如果(借助GPT)会了油猴脚本编写,是不是很多(所有)网页上的事情都可以自动化了?
附件:学习所以然
【以下内容为AI生成,仅供分享学习使用】 当然可以!这个油猴脚本中涉及了一些基本的 JavaScript 相关知识。让我来解释一下:
- 事件监听器:
javascript
window.addEventListener('load', function() {
replaceText();
});
这段代码添加了一个事件监听器,当页面加载完成后('load'
事件)执行 replaceText
函数。也就是说,当页面加载完成后会触发 replaceText
函数进行操作。
- 函数和变量:
javascript
function replaceText() {
// ...
}
var originalString = prompt("请输入要替换的文本", "原始字符串");
var replacementString = prompt("请输入新的文本", "替换后的字符串");
这里定义了一个名为 replaceText
的函数来进行替换操作。同时使用 var
关键字声明了两个变量 originalString
和 replacementString
用于存储用户输入的文本。
- 用户输入弹窗:
javascript
var originalString = prompt("请输入要替换的文本", "原始字符串");
var replacementString = prompt("请输入新的文本", "替换后的字符串");
prompt
是一个 JavaScript 函数,用于弹出一个对话框来让用户输入内容。第一个参数是弹窗中要显示的文本,第二个参数是输入框的默认值。
- 文本替换:
javascript
while(textNodes.nextNode()) {
var node = textNodes.currentNode;
node.nodeValue = node.nodeValue.replace(new RegExp(originalString, 'g'), replacementString);
}
这段代码遍历了页面中的文本节点,然后使用 replace
方法替换了匹配的字符串。这里使用 new RegExp()
创建了一个正则表达式来匹配所有的原始字符串,并用 replace
方法将其替换为新的字符串。
希望这些解释对你有所帮助!JavaScript 是一门功能强大的语言,有很多方面值得学习,我鼓励你继续深入学习。
本文使用的GPT助手大家可以关注我免费体验,也支持给个人/企业部署专有版。