上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖
楼主: xiaooooooo - 

信息接收提速问题,求问优化方法

[复制链接]
  • TA的每日心情
    开心
    2023-7-13 09:56
  • 签到天数: 2 天

    [LV.1]初来乍到

    9

    主题

    93

    回帖

    120

    积分

    中级工程师

    积分
    120

    油中2周年油中3周年

    发表于 2023-8-8 22:50:07 | 显示全部楼层
    本帖最后由 xiaooooooo 于 2023-8-8 23:10 编辑
    wyn665817 发表于 2023-8-8 16:48
    看不懂我的意思吗。。。
    你只测了服务端和客户端内部的速度
    那客户端到服务端的速度和服务端到客户端的速 ...

    我用了楼上大佬教的方法,这个t3-start应该是客户端回传到服务端的速度了,大概2s不到
    start时间是油猴脚本第一行,end时间是油猴脚本发送xhr前的时间戳,spend_time=end-start, t3是在onload里面的时间戳

    GM_xmlhttpRequest({
                method: "POST",
                url: monkey_url,
                data : JSON.stringify({'数据':dataList,'从发送请求到接收到该条数据所花费时间':spend_time + '秒'}),
                onload: function(response) {
                    //这里写处理函数
                    console.log(response);
                    console.log(dataList);
                    const t3 = Date.now();
                    console.log(t3-start);
                    //window.close();
                }
            });

    我之所以用掐表的方式计时,因为我统计的是【按下鼠标】到【pycharm接收到数据】的时间,这个时间我不知道该怎么算。如果我直接把鼠标点击的动作写死在油猴脚本里面的话,我又没法对筛选条件进行自定义了。
    回复
    订阅

    使用道具 举报

  • TA的每日心情
    开心
    2024-1-22 09:36
  • 签到天数: 92 天

    [LV.6]常住居民II

    1

    主题

    22

    回帖

    155

    积分

    荣誉开发者

    积分
    155

    荣誉开发者油中3周年挑战者 lv2

    发表于 2023-8-9 15:01:43 | 显示全部楼层
    本帖最后由 wyn665817 于 2023-8-9 15:06 编辑
    xiaooooooo 发表于 2023-8-8 22:50
    我用了楼上大佬教的方法,这个t3-start应该是客户端回传到服务端的速度了,大概2s不到
    start时间是油猴脚 ...

    也别客户端服务端了,分不清楚你指的是哪个。
    按照前端和后端来描述吧。
    t3-start是信息从前端脚本运行到前端发送消息再到前端接收到后端回信的时间差。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-1-22 09:36
  • 签到天数: 92 天

    [LV.6]常住居民II

    1

    主题

    22

    回帖

    155

    积分

    荣誉开发者

    积分
    155

    荣誉开发者油中3周年挑战者 lv2

    发表于 2023-8-9 15:05:08 | 显示全部楼层
    xiaooooooo 发表于 2023-8-8 22:50
    我用了楼上大佬教的方法,这个t3-start应该是客户端回传到服务端的速度了,大概2s不到
    start时间是油猴脚 ...

    统计的是【按下鼠标】到【pycharm接收到数据】的时间也很简单
    按下鼠标触发的事件同时记录下时间戳
    pycharm接收到数据的时候也记录下时间戳
    这些都能做到,不知道你有啥疑问。。。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-9-29 15:06
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    9

    主题

    81

    回帖

    88

    积分

    初级工程师

    积分
    88
    发表于 2023-8-10 14:37:14 | 显示全部楼层
    szzxc 发表于 2023-8-7 18:58
    所以油猴才是客户端,相当浏览器提供数据给服务器。。。Py运行的不是有post接收吗,这就是服务端 ...

    可是我在第楼主的贴子第一楼是这样写的, 我在服务端(油猴脚本),以及客户端(py脚本)
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-9-29 15:06
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    9

    主题

    81

    回帖

    88

    积分

    初级工程师

    积分
    88
    发表于 2023-8-10 17:42:58 | 显示全部楼层
    具体是哪个页面的数据?
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-7-13 09:56
  • 签到天数: 2 天

    [LV.1]初来乍到

    9

    主题

    93

    回帖

    120

    积分

    中级工程师

    积分
    120

    油中2周年油中3周年

    发表于 2023-8-10 21:59:41 | 显示全部楼层
    wyn665817 发表于 2023-8-9 15:05
    统计的是【按下鼠标】到【pycharm接收到数据】的时间也很简单
    按下鼠标触发的事件同时记录下时间戳
    pycha ...

    emmm 好吧可能是我没表达清楚
    总的来说 我的问题是想要利用如下两个脚本 实现鼠标一点就能获取数据的效果 【重要的是尽可能快】

    脚本一:油猴脚本
    https://scriptcat.org/script-show-page/1209
    脚本二:py脚本
    from flask_cors import CORS
    from flask import Flask, request
    from redis import StrictRedis
    import logging
    import time

    # logging.basicConfig(level=logging.ERROR, format='')

    app = Flask(__name__)
    redisCli = StrictRedis(
        host='127.0.0.1',
        port=6379,
        db=0
    )

    @app.route('/airLines', methods=['POST'])
    def airLines():
        if request.method == 'POST':
            time_start = time.time()  # 开始计时

            form_data = request.get_data()

            redisCli.rpush('listPage', form_data)  # 推到redis列表页
            print(form_data.decode())

            time_end = time.time()  # 结束计时

            time_c = time_end - time_start  # 运行所花时间
            print('time cost', time_c, 's')

        return form_data


    if __name__ == '__main__':
        CORS(app, supports_credentials=True)  # 允许跨域
        app.run(host='127.0.0.1', port=8883, debug=False)
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-7-13 09:56
  • 签到天数: 2 天

    [LV.1]初来乍到

    9

    主题

    93

    回帖

    120

    积分

    中级工程师

    积分
    120

    油中2周年油中3周年

    发表于 2023-8-10 22:14:20 | 显示全部楼层
    szzxc 发表于 2023-8-10 17:42
    具体是哪个页面的数据?

    OK 我承认我对客户端与服务端的定义混乱
    具体页面大佬看下这个 https://www.jetstar.com/cn/zh/ho ... 9-08-2023&tab=1
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-9-29 15:06
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    9

    主题

    81

    回帖

    88

    积分

    初级工程师

    积分
    88
    发表于 2023-8-11 18:39:42 | 显示全部楼层
    但是实测下来(掐秒表)整个数据获取过程需要接近10s, 整个过程是指哪里时间计算,我试了一下好像不用,等待网页打开耗的时间多,打开后马上就可以python服务接收数据了。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-9-29 15:06
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    9

    主题

    81

    回帖

    88

    积分

    初级工程师

    积分
    88
    发表于 2023-8-11 18:48:55 | 显示全部楼层
    提交到python 服务端差不多每条数据 "从发送请求到接收到该条数据所花费时间":"0.035秒"
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-7-13 09:56
  • 签到天数: 2 天

    [LV.1]初来乍到

    9

    主题

    93

    回帖

    120

    积分

    中级工程师

    积分
    120

    油中2周年油中3周年

    发表于 2023-8-11 21:13:38 | 显示全部楼层
    szzxc 发表于 2023-8-11 18:39
    但是实测下来(掐秒表)整个数据获取过程需要接近10s, 整个过程是指哪里时间计算,我试了一下好像不用,等 ...

    【整个过程】指的是从【鼠标点击任一个日期】到【从pycharm里面看见数据】,这个过程需要10s左右,不知道怎么优化。可能就是因为我这个抓取方法就是要等待元素渲染出来?
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表