精华内容
下载资源
问答
  • 链接:...当在写脚本时,我想在脚本里面知道该脚本的路径,怎么做。可能有人会说pwd命令,但是当在pwd命令之前用了cd 命令到其他目录,pwd就不管用了, 例

    链接:http://zhidao.baidu.com/link?url=rHYKAN4E4jNs5GJ_XPz6ahXwK0ZZj7jvyHo351dQloN0SbuCVwL4CT95DZgrnSqrLE5hn4-ZpRmNUTbRqVQzs_

    当在写脚本时,我想在脚本里面知道该脚本的路径,怎么做。可能有人会说pwd命令,但是当在pwd命令之前用了cd 命令到其他目录,pwd就不管用了,
    例如:
    如果脚本在a/b/a.sh
    cd ../
    pwd
    那么pwd就是a目录了
    而且如果把该脚本改成可执行属性,双击时pwd也是不正确的。

    你可以在cd之前就保持pwd返回的值就可以了
    1 #!/bin/bash
    2 path=`pwd`
    3 cd ..
    4 echo "sript path = $path"
    第2行哪个不是单引号,看清楚哦

    展开全文
  • 手游现在已经成为大家打发碎片化时间的一种很普遍的方式了,而有的人会由于种种愿意不能自己去玩,就希望有什么办法或者工具能帮助我们解决这个问题,不用人收着也能完成任务。实现原理:比如一个游戏的任务,你需要...

    手游现在已经成为大家打发碎片化时间的一种很普遍的方式了,而有的人会由于种种愿意不能自己去玩,就希望有什么办法或者工具能帮助我们解决这个问题,不用人收着也能完成任务。

    ddd793469826bcd621f908b46ac1fa1e.png

    实现原理:

    比如一个游戏的任务,你需要在不同的手机屏幕上进行一系列点击,滑动,甚至输入文本,发送语音等动作后才能完成,而这一切操作其实就是手机中会记录这些动作的文件,文件存储的是一个又一个的信号量,这些信号然后根据不同厂商的设定反馈给上层,而上层会根据反馈的信息转换成统一识别的事件,事件最后响应给应用,并对信息进行相应的处理,最后呈现给用户并实现它,这一些列的动作都是可以通过一些现有的工具或者说解决方案来帮我们实现自动游戏的功能。

    d5d4b878e003b9d8f4db4e0d8bbe69e4.png

    一般实现的方式

    1.通过USB连接电脑,然后通过ADB(一种android的调试工具,当然iOS也有类似的工具一个原理)对手机进行远程的控制;

    2d6fd45843f9be544dcd5fd400065748.png

    2.通过在手机中安装一个控制其它app的app来控制,说简单点就是生成一个手机应用,在手机中运行后,直接通过这个应用对其它应用进行操作;

    实现方式我们明白了,那么要借助哪些工具或者说哪些解决方案来帮我们进行实现呢。

    易语言解决方案:

    首先我们来说一说这个被大多数人所知道的,但是又被"正统"程序员所抵触的编程语言。

    这是一款运用中文进行编程的语言,可以说它让大多数人摆脱了"英文魔咒",很多人认为学习编程其实就是学英语,或者英语不好没办法学习编程,这其实是错误的理解,这个后话了,等我有空了再为大家分享下如何摆脱这个魔咒。

    优势:

    1. 中文化编程,中文毕竟是我们的母语,在更加让人容易理解;

    2. 在游戏相关领域有非常成熟的框架,或者中支持库;

    3. 使用这种解决方案的人群非常多,当你遇到问题时很容易找到解决办法;

    劣势:

    1. 代码的编译速度相对其他语言来说很慢;(对于现在的电脑硬件来说其实已经没啥大碍)

    2. 会被其他编程语言鄙视,太local化了,没有那种国际感;

    3. 收费;(虽然作者初衷是推广中文编程,但是推广也是要钱的嘛,能理解)

    4. 易语言需要进行一定的学习,相对其他几个解决方案来说难度略高;

    易语言解决方案总的来说,由于是中文的并且有大量现成知识库做支撑,很容易就能实现功能,所以一直被用来作为中控型的脚本来编写,不大会被用来进行生成app的方式来进行(有app化的解决办法,但是不稳定不讨论)

    d8e1b7e742ab573a0e3499de28a2df38.png

    易语言代码

    按键精灵解决方案:

    案件精灵可以说是这个领域里,历史悠久且非常出色的一位前辈。非常简单就能上手,甚至有通过录像然后转成脚本的录制功能,当然要制作出优秀的脚本也需要进行一定的学习;

    优势:

    1. 非常简单,容易上手,有非常丰富的快捷方式;

    2. 有录制功能,更进一步降低了制作门槛;

    3. 历史悠久人群稳定,所以社区也很稳定,遇到问题很容易找到解决办法(注意我说的是群体,不是按键精灵的论坛。)

    4. 按键精灵非常良好的提供了解决方案,即可生成app直接手机中运行,也可以通过安装按键的android版然后传送脚本进行运行。

    劣势:

    1. 付费,且不便宜;

    2. 代码框架实现是基于英文实现;

    3. 无法进行分文件管理,就是说所有业务要写进一个文本里,这其实非常不方便管理和维护;

    按键精灵解决方案,比较适合对编程没有什么基础的朋友上手。网络上也有非常多的免费教程可以进行学习。

    3bb2aa9a883d6a1430e7e07af5399876.png

    按键精灵安卓代码

    触动精灵解决方案:

    触动精灵是近几年新启一个新的平台,是基于lua语言来进行编写开发的,与按键精灵类似,不过相对按键的名声赫赫,就有点显得小很多。

    优势:

    1. 支持文件化管理开发;(这点其实非常棒,对于后期的代码开发或者维护来说都很棒)

    2. 基于lua开发,所以可以完美利用lua的原表特性来进行一些框架搭建,更加适用于负责的点击事件;

    3. 拥有一套完善的支持自动化的库,可以直接拿来使用;

    4. 支持远程调试,脚本传到手机中运行,也可以生成app进行控制;

    劣势:

    1. 需要学习lua语言,对小白来说有点不友好;

    2. 需要付费,相对按键来说比较便宜;

    3. 偏小众,出问题想找解决办法非常难找;

    4. 对于android和iOS系统收取不同的费用来打包生成apk;

    5. 代码框架也是基于英文进行实现的;

    触动精灵的解决方案,好于能利用lua的原表特性来进行自定义框架开发,方便自己的后续的多次开发。网络上也有很多的教程来进行学习,就是遇到问题需要解决的时候,总会找不到办法,这里有点难受。

    8eab83c91c8b04b25946e0eaa1d9b4ea.png

    lua代码

    Auto.js解决方案:

    这套方案是借助于android手机的无障碍服务进行实现的,根据控件的id进行一系列的事件响应,精准度更高。

    优势:

    1. 无需root就可以实现控制手机;

    2. 可在手机中运行,也可以打包成apk运行;

    3. 通过控件id进行控制,准确度非常高,并且自适应分辨率;

    劣势:

    1. 对游戏不大友好,因为游戏很多时候控件都不规则,都是一个个画布;

    2. 需要学习js;

    3. 基于英文实现的代码框架;

    Auto.js这个解决方案,对于游戏来说并不大友好,虽然也有找图找色等功能,但是使用起来并没有按键或者触动那么方便,并且由于是基于空间id进行控制,并不大适合游戏。

    df7d248640152cb1f53b5f1278cd6b73.png

    auto.js代码

    其他解决方案:

    其实还有其他非常多的类似的解决方案,但是大多数都没上面列举的这些被人熟知。

    举个例子像python也拥有非常丰富的类库,但是只能适应使用usb连接手机的通过adb进行控制这样的操作,无法生成一个apk来安装到手机中进行操作,我也曾尝试过在手机中模拟一个python环境,但是依赖的类库无法非常方便的移植到手机中,就算静态编译过去也非常的耗时,所以python也能实现但是他很不友好,也很不方便,学习成本也非常高。

    展开全文
  • 我写了2个脚本,scipt_1 ,scipt_2。我想让scipt_1 调用scipt_2之后就与之无关,也就是scipt_1直接在另外一个进程里面跑,怎么实现?...有没有什么办法scipt_1 调用scipt_2之后就无关了,继续自己的事情然后退出?
  • 如果您知道您在什么和此操作所带来的影响并承担对应的后果,则点击确定。',48,"Microsoft Windows" <p>username=inputbox("请输入此计算机管理员用户名") passwd=inputbox("...
  • tableau调用python脚本3--爬虫前言: 之前写了个查价的爬虫,每天定时运行的,这时候业务又有新需求来了:要求能够自己随时运行爬虫,并查看抓取结果 想了想,最省事的方法是把爬虫的源代码给到业务让他们什么时候想...

    a08aaf0f5c77a4438fef3f8d424c6768.png

    tableau调用python脚本3--爬虫

    前言:

    之前写了个查价的爬虫,每天定时运行的,这时候业务又有新需求来了:要求能够自己随时运行爬虫,并查看抓取结果

    想了想,最省事的方法是把爬虫的源代码给到业务让他们什么时候想运行的时候就什么时候运行,但是他们不懂技术,也不懂怎么运行,还得安装解释器,这些对他们来说都是比较有难度的事情,所以决定给他们做一款产品。

    首先分析一下该需求:

    • 需要有一个调用爬虫的地方
    • 需要有一个展示结果的地方
    • 需要有一个运行爬虫的地方

    其实首先想到的是如果没有现有的产品可用,那就做个网页吧,但是网页需要前端后端完全做好非常耗时间,短则3、5天,长则超过一星期才能做好

    这时候想到了tableau,tableau有几个重要的优点

    • tableau展示数据非常强大
    • tableau可以调用python
    • 现成的产品,使用简单,开发效率高

    既然tableau可以调用python,python又可以运行爬虫,那就说明tableau是有办法做成爬虫的启动器和数据展示的地方.

    正式开始

    目录一、 包装爬虫并部署到linux服务器 1.1 包装爬虫 1.2 部署 二、 tableau调用部署好后的爬虫 2.1 打开tableau 2.2 新建一个参数:服务日期,这个日期是要传递给爬虫的日期 2.3 新建一个计算字段:启动爬虫 写下如下内容 2.4 把这个计算字段拖到文本标签上 2.5 给这个工作簿明个名:启动爬虫 2.6 新建一个工作簿:数据展示 用来展示数据用 三、 数据展示 3.1 把相应的字段拖到工作薄里展示 3.2 回到启动爬虫工作薄修改服务日期,这时候爬虫就开始启动 3.3 回到数据展示工作薄,看到数据已经刷新好了 附:tableau调用爬虫工作流程图

    一、包装爬虫并部署到linux服务器

    linux服务器已运行tabpy-server,不懂怎么部署和运行的可以参照之前文章

    1.1 包装爬虫

    我的爬虫是一个爬虫类叫Ydj,随便起的名字,这个爬虫是一个查询某网站接机价格的爬虫,输入一个日期date参数(比如2020-03-15),传递给爬虫类Ydj,运行access-ydj()方法后爬虫便开始抓取这个站点3月15号的接机价格数据,运行后没有返回值,爬虫类自动把数据储存到数据库,最终返回给tableau的是最后一句,中间的是日期校验,如果日期选择的不对,爬虫就不运行了,直接给tableau返回错误信息

    def spider_jsj(number, date):
        length = len(number)
        print(date)
        date = date[0]
        if date<=arrow.now().format('YYYY-MM-DD'):
            err_msg=random.choice(date_err_msg)
            return [err_msg for i in number]
        print('number:', length, 'days', date)
        ydj= Ydj(date)
        ydj.access_ydj()
        return [f'数据抓取完毕,点击查看 {date} 接送机数据' for a in number]

    err_msg是一个列表,我自己定义了一些错误的提示信息,比如:

    date_err_msg = [
        '你给的日期有问题啊,大妹子,你确定你不是故意的?',
        '换个日期再试试',
        '注意日期,严肃严谨!!',
        r"""
    
            _-~~~-_       _-~~~-_
          /~       ~    :    ,  
         '           ~   ,   |:  :
        {      /~~  :--~~~~~.:  :
             (... :   /^  /^ ;
          ~_____     |   | | |:~
                /     |__O|_|O|;
               (     /       O     I`m Squidward
                   ( `_______/)   This is my toy
                 `           /    Then it will belong to you
                   )  ~-------~'
                  /              
                 :               ||
                 |  |            ||
                 |  |.======[]==+'|
                (~~~~)       |   |~)
                /           |   | 
    ~          ___/)______/^__|_/
      `      //    |  |      | |
        `__//'     |  |      | |
           ~~       (~~~~)    (~~~)
                   /     =..'    =_
                  |__________)________)"""
    ]
    

    1.2 部署

    if __name__ == '__main__':
        client = tabpy_client.Client('http://localhost:9004')
        client.deploy('spider_jsj_ydj_old', spider_jsj, override=True)

    然后把文件上传到服务器上,随便放哪都行,然后在服务器上执行py:

    [root@hotel-query-6-38 data]# python ydj_jsj.py
    [root@hotel-query-6-38 data]#

    如果不报错就说明部署成功,部署失败要么是语法问题,要么是tabpy-server没启动,要么是没有加上参数override=True

    二、tableau调用部署好后的爬虫

    2.1 打开tableau

    2.2 新建一个参数:服务日期,这个日期是要传递给爬虫的日期

    faebdf9c46758fe95f72648f7be44c0e.png

    2.3 新建一个计算字段:启动爬虫 写下如下内容

    SCRIPT_str("
    import arrow
    print('='*40)
    print(f'当前时间:{arrow.now()}')
    return tabpy.query('spider_jsj_ydj_old',_arg1,_arg2)['response']
    "
    ,attr([序号]),attr([服务日期]))

    f79de888289f4e0ede945859dfc7e459.png

    传递给这个计算字段两个参数,服务日期和序号

    服务日期就是刚才新建的参数,序号是来自数据库里的字段:ID,可不要,如果不要,包装爬虫的时候写的函数(spider_jsj)只留一个date参数即可,这个参数现在基本没什么作用,我留着以后用来控制抓取的数据量用的

    2.4 把这个计算字段拖到文本标签上

    这个时候应该只有一个单元格单元格,日期可以先调整为2020-02-26(今天),这样爬虫不会启动,不需要等待,服务器会直接返回之前配置的错误信息(之前爬虫里配置的date_err_msg列表)

    把这个单元格调大点,字体也调大点,看起来美观就好

    aceafca19c93ee93b6e736ebfc4d9eaa.png

    2.5 给这个工作簿明个名:启动爬虫

    2.6 新建一个工作簿:数据展示 用来展示数据用

    新建一个数据源,连接到爬虫保存的数据库,从库里读取文件

    连接方式:实时

    Ps:前提是已经建好对应的库表,爬虫已经可以自动往库里写数据

    三、数据展示

    3.1 把相应的字段拖到工作薄里展示

    3.2 回到启动爬虫工作薄修改服务日期,这时候爬虫就开始启动

    f9f3db2364db89685f36131bd47bf777.png
    出现这个提示说明tableau已经调用爬虫,爬虫正在抓取中,抓取完毕,这个对话框就会消失

    3.3 回到数据展示工作薄,看到数据已经刷新好了

    6475c634e774e230b006754864f45e12.png
    如果数据没有刷新,可以手动点击刷新按钮,数据就会刷新

    也可以创建一个仪表板,把启动爬虫工作薄放进去,调整个美观的格式,还可以添加操作,点击启动爬虫仪表板跳转到数据展示工作薄(工作表>操作>添加操作>转到工作表),当爬虫运行完毕点击当前仪表板就可以自动跳转到数据展示工作薄

    好了,现在我把这个仪表板上传到服务器上,业务人员就可以随时访问爬虫并查看数据了,整个过程不到1天时间,效率非常高,老铁,感兴趣就试试把~!

    514dbc9c30fd46b2b5110966967709a6.png
    错误反馈(胖了)

    057523dd26542c0b415e53bb2c953ba7.png
    正确反馈

    其实还有一种方法是不经过数据库中转,把爬虫抓取的数据直接返回给tableau,tableau直接展示,这样可以少去数据写入在读出的过程,但有一个致命的问题格式很难调,如下图:

    af8c761b941281d6a6afb204660cd1ee.png
    这个方法效率虽然高了点,但调格式用了一天,还有些小BUG 0.0. 只是为了实现功能可用这个方法

    附:tableau调用爬虫工作流程图

    62fc2c070cb6e4074c5b6f636fb6a062.png
    展开全文
  • 去年包装盒的时候自己画过几次刀模,费时费力又不准确今年终于发现一款ai脚本插件画刀模,操作简单,速度快捷插件介绍:AI脚本插件合集2.0版,支持2014-2019AI版本 。(win/mac都可以用)安装方法:下载解压后,将...

    be21d3f8adde450740d95e0116971705.png

    去年做包装盒的时候自己画过几次刀模,费时费力又不准确

    今年终于发现一款ai脚本插件画刀模,操作简单,速度快捷

    插件介绍:

    AI脚本插件合集2.0版,支持2014-2019AI版本 。(win/mac都可以用)

    安装方法:

    下载解压后,将对应的“*.jsx”复制到"Abobe Illustrator XXPresets(在部分AI软件中可能显示为“预设”)zh_CN脚本" 文件夹下,重新启动ai,就可以在"文件"-"脚本"下看见ai脚本菜单,运行即可。

    百度网盘

    页面不存在_百度搜索pan.baidu.com

    4094aa6b478a7b6ca3ca0760a09f5ba6.png
    展开全文
  • 每次调用自己脚本都要写出路径,感觉了无用功。怎么能把自己脚本调用简化呢。比如我就想打一个单词就调用自己脚本。我用alias的方法失败了…然后把自己脚本做出shell命令的方法好像挺复杂的。还有其他的...
  • 我们知道unity引擎在我们写好或修改了C#脚本之后,会自动编译。这个编译是比较耗时的。哪怕我们了一丁点儿修改,这个过程也不可...那么我们怎么来实现阻止脚本自动编译unity提供了一个阻止加载程序集的方法,我们...
  • 我之前也写过一个短篇系列《零基础开发RPG游戏开源讲座》,介绍的也比较简单,这次我会更深入也更具体的介绍一下RPG游戏的开发过程。...这也让我觉得,我再不点儿什么的话,自己可能会遇到更不爽的事儿。 有
  • 人人都说创作者的今天,大家都想一回短视频达人,希望自己能拍出一条100w+的内容。有人说,我精通剪辑,擅长运镜,为什么还是拍不出好作品?有人说,我有好故事,想用镜头表达出来,该怎么做?拍摄流程怎么规划?...
  • 你也许会说,这太简单了,写个循环,然后,让他自己去跑就行了。是的,你可以很顺手的用你的编程语言去写循环,如PHP。但是,你知道,这样其实是改变了代码结构了,鬼知道会导致什么结果呢? 并且,我...
  • 为一名有经验的安卓开发人员,相信大家都知道Maven仓库与Jcenter仓库,这是目前全球最常用的两个,其中Jcenter是目前最大的一个Java与Android开源软件构建仓库,而且我们经常用的Android Studio就是默认支持...
  • 记录这个事情是上次完成之后,今天要新加一个文件夹,一时之间忘记以前怎么做了,因为有几种方法,起码我知道三种方法,这里记录一笔以前的做法,觉得最简单: 操作系统:CentOS-5.2 目 标:开机自动挂载局域网...
  • 最开自己一直苦练技术,想在微信排行上面装一装,练了好久才跑三百多分。接着在Github(Github地址:https://github.com/wangshub/wechat_jump_game),有一个大神发布了,一个Python脚本自动跳,分数随便跳,当然分数...
  • 人人都说创作者的今天,大家都想一回短视频达人,希望自己能拍出一条100w+的内容。有人说,我精通剪辑,擅长运镜,为什么还是拍不出好作品?有人说,我有好故事,想用镜头表达出来,该怎么做?拍摄流程怎么规划?...
  • 手游现在已经成为大家打发碎片化时间的一种很普遍的方式了,而有的人会由于种种愿意不能自己去玩,就希望有什么办法或者工具能帮助我们解决这个问题,不用人收着也能完成任务。实现原理:比如一个游戏的任务,你需要...
  • 我叫Rachel,旅玩直播从业人员,正在电脑前码字,准备安利你长期看我的专栏。 专栏第一篇就写旅玩直播脚本,有点突兀,不过没关系,成年人就是...大家结合自己的事情情况按需借鉴~在户外旅游直播的时候,如果没有...
  • 写在前面 最近遇到了一个坑,给大家分享下。...脚本如下(下面并不是我项目中实际的脚本了一些修改,大家不用纠结语法和能否运行。不过不影响本文的分析): private final static String luaScript = "re
  • 最近很多小伙伴反馈没产品、项目,说能不能...得好的一个月可以好几万,这是我自己操作的项目截图: 没产品、没项目的,以及有自己项目没有流量,不会推广的都可以加到群里大家一起交流讨论,另外我这面最近又...
  • 写在前面最近遇到了一个坑,给大家分享下。有个项目,利用redis统计功能。一向对性能追求极致的我...脚本如下(下面并不是我项目中实际的脚本了一些修改,大家不用纠结语法和能否运行。不过不影响本文的分析)...
  • 先不说手机浏览器能不能装上脚本这个问题,黑马发现,很多浏览器就连最简单的广告拦截都得不是很好。所以今天,黑马就要来给大家推荐几款浏览器,保证让大家的上网体验从此舒舒坦坦。要说起夸克浏览器嘛,大家肯定...
  • 大家对解释器的吸引,绝对没有自己动手写一个脚本语言更有吸引力。不过如果看到标题过来的,可能也是我承认,之前收藏的减肥视频,我都是这样对待他们的。不过我还是相信很多程序猿or程序媛不仅仅希望可以做出一个...
  • 用c#开发的时候,新建的脚本都默认继承自Monobehaviour, 因此脚本才有了自己的生命周期函数,如Awake,Start, Update, OnDestroy等。 在相应的方法中实现游戏逻辑,引擎会适时调用。 而Lua在这里为c#的一个外延...
  • 先不说手机浏览器能不能装上脚本这个问题,黑马发现,很多浏览器就连最简单的广告拦截都得不是很好。所以今天,黑马就要来给大家推荐几款浏览器,保证让大家的上网体验从此舒舒坦坦。要说起夸克浏览器嘛,大家肯定...
  • 序这是第二次遇到该挖矿病毒,网上也有很多大佬对该病毒过分析,也想过再写可能没有什么意义,最终还是想写一写属于自己的东西,也算是两次相遇的总结。背景这次废话不多说,直接上,背景感觉毫无意义。分析现象...
  • 怎么做性能测试

    2019-10-05 06:39:09
    今天和同事交流关于性能测试的东西,以前也过性能测试,突然想写点自己关于如何性能测试的认识。 基于B/S架构的系统,利用loadrunner性能测试,利用nmon监控系统资源(用linux自带的top,vmstat等命令也可以...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 724
精华内容 289
关键字:

怎么自己做脚本