油猴吧 关注:4,099贴子:8,676

我想讲两句

只看楼主收藏回复

巴里小白太多了.希望本贴能够给更多人科普一些基本的东西.


IP属地:北京1楼2022-05-29 19:27回复
    1.浏览器中有三个东西:插件,扩展和脚本.
    插件权限最大,可以读写本地文件,不受浏览器约束,可以认为和普通软件(比如qq,浏览器)是同级的.
    扩展权限其次,是在浏览器中安装的软件,比如油猴,adblock这样的.扩展权限会被浏览器进行一些约束,毕竟是要按照浏览器的要求去编写的,同一个扩展对于不同浏览器可能要改动很大.
    脚本权限最低,因为安全策略的限制,什么同源策略,本地文件读写策略,剪贴板安全策略...一大堆限制.通常只能在同源页面下做一些人畜无害的事情.


    IP属地:北京2楼2022-05-29 19:38
    收起回复
      2你们通常所说的油猴扩展,大多数情况下是tampermonkey,人家叫篡改猴.油猴一般指的是篡改猴的祖先:greasemonkey.篡改猴可以看作是对油猴的升级版.另外还有一些其他的类似插件,如国产的暴力猴,国产的脚本猫...不过就个人感受而言,还是篡改猴用着最爽,虽然也有很多不爽的地方.


      IP属地:北京3楼2022-05-29 19:39
      收起回复
        3.为什么油猴用不了了?
        你们必须意识到,网页是在动态变化的,互联网这个行业就是更新迭代快的飞起..因此可能昨天刚写的适配于这个网页的脚本,明天就马上失效了.而如果想要抵消这种变化,就必须投入每天的维护,这可不是一个小工作.


        IP属地:北京4楼2022-05-29 19:43
        回复
          4.对于1提到的脚本权限低的问题,tampermonkey其实也为我们提供了一些操作,来绕过安全策略,比如GM_xmlhttpRequest就可以规避同源策略.此外还可以在设置里,选择"允许脚本读取本地文件",这样就可以使用@require来包含你自己的电脑上的js资源了.等等.总之,tampermonkey作为扩展,把一些只属于扩展级别的权限交给了脚本,让你的脚本可以得到某些本来得不到的权限.


          IP属地:北京5楼2022-05-29 19:48
          收起回复
            用油猴实现两个功能
            在run at DM-end后:
            1,Ctrl+S,Enter。(网页另存为)快捷键怎么变成自动化脚本
            2,点击网页里的“下一文章”
            3,run at DM-end(循环)
            爬虫这个网站的很多页
            默认mHTML格式或zip
            这两个怎么做啊大佬


            IP属地:重庆来自Android客户端6楼2022-05-29 21:29
            收起回复
              怎么弄?油猴和火狐兼容


              IP属地:河南来自Android客户端7楼2022-05-29 23:15
              回复
                油猴可以来油猴中文网玩玩
                开发者和技术资料在中文圈还是不错的


                IP属地:广东8楼2022-05-30 23:39
                收起回复

                  大佬知道这个怎么弄吗?翻译一下“由于最新版本的某插件需要更多权限,因此已将其停用。”我只搜到几个人有这个问题,目前百度出的解决方法都没用(调成英文就是想去github问一下kiwi开发者)


                  IP属地:黑龙江10楼2023-01-14 17:26
                  收起回复
                    楼主科普很有用,小白表示仰望大佬


                    IP属地:江苏来自Android客户端11楼2023-05-24 22:12
                    收起回复
                      最近老是保存失败,是什么原因呢


                      IP属地:广西12楼2023-05-25 01:44
                      收起回复
                        大佬,我的秒传摁建消失了,度娘云的网页无论新旧版本都没有秒传摁建怎么办


                        IP属地:辽宁13楼2023-05-25 11:14
                        收起回复
                          大佬 , 我想把网页某个DOM元素 隐藏 , 但是代码总是在 页面加载完再执行我的代码 , 就会出现 显示一下然后再隐藏 , 就是闪屏的现象 , 我运行时期选择 document-body, 也还是闪屏 , 大佬能指教一下吗


                          IP属地:广东14楼2023-05-25 21:11
                          收起回复
                            5、脚本的作用时机
                            作用时机对于脚本可谓是是重中之重,时机稍有不对,脚本就无法发挥作用。以tampermonkey为例,™在元数据区共设有以下几类作用时机,在此讲解一下我的浅见,欢迎随时指摘。
                            // @run-at document-idle——网页加载全部完成,也是缺省时机,可看作是load事件触发
                            // @run-at document-end——网页加载基本完成,局部内容如图片、视频等资源尚未加载完成,可看作是DocumentContentLoaded事件触发
                            // @run-at document-start——网页加载开始前,最早的时机
                            // @run-at context-menu——网页右键菜单栏执行脚本,本人用的最少,对此不甚了解
                            当然,以上只是™提供的几类api,而实际情况会更复杂,比如很多网页使用了Ajax之类的技术来灵活延迟网页加载过程,例如b站视频加载,百度搜索换页,等等。遇上此类情况可能需要自己去琢磨适配的时机匹配思路,或是运用setTimeout、setInterval这样的简单延时函数,或是手写更复杂的监听器、MutationObserver来对变化作出回调。


                            IP属地:北京16楼2023-05-25 23:22
                            收起回复
                              6.脚本的作用域
                              作用域对于脚本同样是重中之重,作用域错了的脚本就成为摆设。同样以tampermonkey为例,在此讲解一下我的浅见,欢迎随时指摘。
                              ™在元数据区共设有以下几类作用域,假定以下均为匹配全部网址:
                              // @include * ——匹配全部网址,可以使用正则表达
                              // @exclude *——排除全部网址,可以使用正则表达式
                              对于以上两类,™在未来的版本似乎会逐渐淘汰此类语
                              // @宇宙 *://*/*——匹配全部网址,不能使用正则表达式。未来的主流
                              稍微解释一下*://*/*——协议://域名/子路径,协议有http、https、ftp、file、moz-extension等类型。域名是把ip转为了便于人类记忆的字符串。子路径则是域名下的不同分支路径。


                              IP属地:北京18楼2023-05-25 23:37
                              收起回复