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

2021-02-25 13:24:45 +08:00
 misakawaque
有 C/cpp,java 和 haskell 基础
大佬和我讲这东西基本只能用 js 写
2811 次点击
所在节点    JavaScript
33 条回复
markgor
2021-02-25 13:35:46 +08:00
你的需求写了很多个字,但却完美的避开了所有关键信息...

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

你后端写个接口, 接受一下脚本发过来的数据 就行了.
xiaofenyi
2021-02-25 15:22:00 +08:00
大家好!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/756163

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX