完全没接触过 js 的人想要写一个实时监控当前浏览器在看的网页的 url 变动并记录在 xml 文件中的小程序来给 Java 做 api 需要学习那几方面的东西? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a Javascript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
Javascript 权威指南第 5 版
Closure: The Definitive Guide
misakawaque
V2EX    Javascript

完全没接触过 js 的人想要写一个实时监控当前浏览器在看的网页的 url 变动并记录在 xml 文件中的小程序来给 Java 做 api 需要学习那几方面的东西?

  •  
  •   misakawaque 2021-02-25 13:24:45 +08:00 3316 次点击
    这是一个创建于 1689 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有 C/cpp,java 和 haskell 基础
    大佬和我讲这东西基本只能用 js 写
    33 条回复    2021-03-11 18:32:55 +08:00
    markgor
        1
    markgor  
       2021-02-25 13:35:46 +08:00   2
    你的需求写了很多个字,但却完美的避开了所有关键信息...

    1 、对方安装后 监控特定的浏览器还是?
    2 、针对你们自己网页进行监控,还是针对整个浏览器监控?
    misakawaque
        2
    misakawaque  
    OP
       2021-02-25 13:55:36 +08:00
    @markgor 监控特定的一整个浏览器啦
    就是想用一个程序,把电脑上 edge 所有访问动作都记录下来
    imgbed
        3
    imgbed  
       2021-02-25 13:57:52 +08:00   1
    @misakawaque 从逻辑开看,不管是 win10 还是 mac,应该不会让开发者这样监控,除非用户用的是你开发的浏览器。
    360 有没有监控就不知道了
    waiaan
        4
    waiaan  
       2021-02-25 13:58:30 +08:00
    这个是相当于开发浏览器的扩展了,监听所有 url 并发送到后台。
    zhyl
        5
    zhyl  
       2021-02-25 14:01:59 +08:00   1
    参考 QQ 读浏览器记录
    markgor
        6
    markgor  
       2021-02-25 14:02:11 +08:00   1
    edge 不清楚,chrome 可以通过插件形式进行监控,但是上不了架。
    其实路由器监控不是更好吗...
    jones2000
        7
    jones2000  
       2021-02-25 14:02:23 +08:00
    网络抓包,
    ayase252
        8
    ayase252  
       2021-02-25 14:02:56 +08:00 via iPhone
    浏览器插件,而且那么侵犯隐私的功能不见得浏览器会提供接口,可以调研一下
    Ranying
        9
    Ranying  
       2021-02-25 14:03:44 +08:00   1
    油猴写个拓展,读 location.href,来个回调,然后 xmlhttprequest 发送到指定后端 api,然后后端 java 监听个端口,读到网址后记录到 xml 中。差不多就这些吧,这题目难以读明白
    jones2000
        10
    jones2000  
       2021-02-25 14:03:54 +08:00   1
    有可以偷偷给机器设置代理, 所有通讯都走你后台中转 要什么数据就都有了.
    lrabbit
        11
    lrabbit  
       2021-02-25 14:04:38 +08:00
    把所有网络包抓取下来,用 python 的 miltmproxy 框架写个脚本就行
    OHyn
        12
    OHyn  
       2021-02-25 14:10:34 +08:00
    写浏览器插件,可获取 URL,XML 要保存到本地?拼好字符串存,用 background script 存到 indexDB 里面吧。
    dfourc
        13
    dfourc  
       2021-02-25 14:29:05 +08:00   1
    看了一下你的发帖记录,你的真正需求是不是这样 "@zxCoder 是一个自动记录在浏览器阅读小说的阅读进度管理器"
    misakawaque
        14
    misakawaque  
    OP
       2021-02-25 14:44:41 +08:00
    @galikeoy 是的
    Kinnice
        15
    Kinnice  
       2021-02-25 14:52:10 +08:00
    @misakawaque 写个油猴脚本可
    zhuweiyou
        16
    zhuweiyou  
       2021-02-25 15:10:55 +08:00
    你这个需求有点奇怪, 还是说一下原始需求吧.
    misakawaque
        17
    misakawaque  
    OP
       2021-02-25 15:17:43 +08:00
    @zhuweiyou 简单来说,就是在看小说的时候,不同的小说经常会来回追更
    有时候会忘记加书签
    需要一个软件 自动记录我浏览器看到的每一本小说以及进度
    所以需要 url
    g00001
        18
    g00001  
       2021-02-25 15:19:13 +08:00
    写了几句 aardio 代码,可以监控到所有 Chromium 内核浏览器地址栏的变动( 包含 edge )

    import win.ui;
    /*DSG{{*/
    var winform = win.form(text="获取 Chrome,Edge 当前浏览的网址";right=759;bottom=469)
    winform.add(
    edit={cls="edit";left=20;top=19;right=735;bottom=437;edge=1;multiline=1;z=1}
    )
    /*}}*/

    import winex;
    import winex.accObject;

    var chromeWidget = {}
    var findChromeUrl = function(){
    for hwnd in winex.each( "Chrome_WidgetWin_1" ) {
    if(!chromeWidget[hwnd]){
    var accObject = winex.accObject.fromWindow(hwnd)
    if(accObject){
    chromeWidget[hwnd] = {
    accEdit = accObject.find(role="editable text";state="focusable");
    }
    }
    }

    var chrome = chromeWidget[hwnd];
    if(chrome){
    if(chrome.accEdit){
    var url = chrome.accEdit.value();
    if( url != chrome.lastUrl ){
    winform.edit.print(url);
    chrome.lastUrl = url;
    }
    }
    }
    }
    }

    winform.setInterval(2000,findChromeUrl);

    winform.show();
    win.loopMessage();
    zhuweiyou
        19
    zhuweiyou  
       2021-02-25 15:21:27 +08:00
    @misakawaque 写个浏览器插件 或者 油猴 可以做到.

    你后端写个接口, 接受一下脚本发过来的数据 就行了.
    xiaofenyi
        20
    xiaofenyi  
       2021-02-25 15:22:00 +08:00
    大家好!
    NCry
        21
    NCry  
       2021-02-25 15:26:12 +08:00   1
    真实需求和需求描述天差地别
    leoleoasd
        22
    leoleoasd  
       2021-02-25 15:26:37 +08:00   2
    推荐楼主阅读一下:避免 XY 问题 https://xyproblem.info/
    大意是:你要解决 X,你认为 Y 可以解决,于是问怎么解决 Y
    但是可能直接解决 X 是个更简单的需求

    这里的 X:记录小说 url
    这里的 Y:“实时监控当前浏览器 url 变动”
    g00001
        23
    g00001  
       2021-02-25 15:38:18 +08:00
    他是用浏览器看小说,浏览器 URL == 小说 URL
    misakawaque
        24
    misakawaque  
    OP
       2021-02-25 15:43:26 +08:00
    @leoleoasd 我看了一下那篇文章,我认为并不需要
    对于学习者而言,达成目标从来不是主要目的
    这种粗暴方法论甚至是有害的
    misakawaque
        25
    misakawaque  
    OP
       2021-02-25 16:00:36 +08:00
    @g00001 哦哦哦感谢大佬
    然而并不清楚怎么用 emmm
    也缺乏跨语言开发经验
    br_wang
        26
    br_wang  
       2021-02-25 16:03:39 +08:00
    @NCry 哈哈哈哈 XY 问题
    thefack
        27
    thefack  
       2021-02-25 16:28:11 +08:00
    我之前写过一个扩展,功能上符合楼主在 #17 楼的要求,不过网址是保存到书签栏,而不是本地,可以参考下: https://github.com/donething/auto_mark_chromium
    misakawaque
        28
    misakawaque  
    OP
       2021-02-25 16:45:17 +08:00
    @thefack 啊,对的,就是这样的
    zxCoder
        29
    zxCoder  
       2021-02-25 21:12:21 +08:00
    @zhyl 那稳了 v2 肯定有很多 qq 程序员
    forgottencoast
        30
    forgottencoast  
       2021-02-25 22:54:45 +08:00
    @galikeoy 只有老板才会把真实需求误差几千公里的描述出来给别人听。
    jmyz0455
        31
    jmyz0455  
       2021-02-26 10:12:35 +08:00
    我的天,实际需求和功能描述居然差那么远
    ysc3839
        32
    ysc3839  
       2021-02-26 13:09:08 +08:00 via Android
    @imgbed 恰恰相反,Windows 和 macOS 这类传统桌面操作系统一般不会限制应用程序做一些自动化操作的。
    Windows 的话不需要任何授权就能实现,macOS 我没测试过,可能需要授权。
    iOS 和 Android 等移动操作系统才不会允许这类操作,不过 Android 使用无障碍功能应该也可以实现。
    zeni123
        33
    zeni123  
       2021-03-11 18:32:55 +08:00
    @misakawaque 你需要写一个插件,或者已经有了这么一个插件了,管理员可以推送插件到用户的 Edge 和 Chrome 上,而且可以强制运行. 估计是反摸鱼插件吧。用着公司电脑的我现在的 Chrome 上面就有一些不能删除的插件...
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2466 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 01:45 PVG 09:45 LAX 18:45 JFK 21:45
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86