鱼C论坛

 找回密码
 立即注册
查看: 2364|回复: 40

[已解决]tampermonkey js问题

[复制链接]
发表于 2023-7-31 16:37:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
如题,我在操作百度时发现连接不是真实地址,如
view-source:https://www.baidu.com/link?url=vsdsl04PUGwYT-udMGNDBSgQ4D62grmcfm8fM4LVjYLVVMoaXT6EoDxqw0FKxHcy&wd=&eqid=979239ad000511ed0000000463453c3e

源代码有这个

Snipaste_2023-07-31_16-36-15.png

然后我 request = require("request")

??

Snipaste_2023-07-31_16-37-15.png
最佳答案
2023-7-31 16:52:18

这个错误表明GM_xmlhttpRequest未定义,这可能是因为你没有正确引入Tampermonkey的API。请确保以下几点:

1. 你已经安装了Tampermonkey插件,并且在浏览器中启用了它。

2. 在脚本的元数据块(以// ==UserScript==开始的部分)中,添加了@grant GM_xmlhttpRequest

3. 确保你将脚本保存为.user.js文件,并通过Tampermonkey加载脚本。不要直接在HTML页面中引入脚本。

请检查这些方面是否正确,如果问题仍然存在,请尝试重新安装或更新Tampermonkey插件。另外,如果你使用的是其他用户脚本管理器,比如Greasemonkey,那么可能需要使用不同的API来发送XMLHttpRequest请求。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-31 16:37:52 | 显示全部楼层
在Tampermonkey脚本中,你需要使用GM_xmlhttpRequest而不是require("request")来发送HTTP请求。GM_xmlhttpRequest是Tampermonkey提供的一个函数,用于在用户脚本中发送跨域HTTP请求。

以下是一个示例代码,演示如何使用GM_xmlhttpRequest发送一个GET请求:
// ==UserScript==
// @name         Tampermonkey Request Example
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  Example of sending a GET request using Tampermonkey and GM_xmlhttpRequest
// @author       Your Name
// @match        https://www.baidu.com/*
// @grant        GM_xmlhttpRequest
// ==/UserScript==

(function() {
    'use strict';

    GM_xmlhttpRequest({
        method: "GET",
        url: "https://www.baidu.com/link?url=vsdsl04PUGwYT-udMGNDBSgQ4D62grmcfm8fM4LVjYLVVMoaXT6EoDxqw0FKxHcy&wd=&eqid=979239ad000511ed0000000463453c3e",
        onload: function(response) {
            console.log(response.responseText);
        }
    });
})();

这个示例代码将在百度页面上执行,发送一个GET请求到指定的URL,并打印响应内容到控制台(开发者工具的Console)。注意,在Tampermonkey脚本中,你无法直接访问源代码,因此view-source:前缀在请求URL中没有实际作用。

希望这个示例对你有帮助!如果你有更多问题,请随时提问。
如果问题已经解决,请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-31 16:38:09 | 显示全部楼层
本帖最后由 Mike_python小 于 2023-7-31 13:42 编辑

关于 Tampermonkey JavaScript 问题和 Web 开发:

在你提供的代码中,view-source:https://www.baidu.com/link?url=v ... 1ed0000000463453c3e 是一个 view-source URL,它显示了指定 URL 页面的源代码。不过,你可能无法直接在脚本中使用这个 view-source URL 进行请求。

如果你想获取真实 URL 地址,并发送 HTTP 请求来检查它,可以考虑使用 XMLHttpRequest 对象来执行异步请求。以下是一个示例代码:
// 创建 XMLHttpRequest 对象
var xhr = new XMLHttpRequest();

// 指定请求方法和 URL
xhr.open('GET', 'https://www.baidu.com/link?url=vsdsl04PUGwYT-udMGNDBSgQ4D62grmcfm8fM4LVjYLVVMoaXT6EoDxqw0FKxHcy&wd=&eqid=979239ad000511ed0000000463453c3e', true);

// 监听请求状态改变事件
xhr.onreadystatechange = function() {
  if (xhr.readyState === 4 && xhr.status === 200) {
    // 请求成功,获取真实 URL 地址
    var realURL = xhr.responseURL;
    
    // 在控制台打印真实 URL 地址
    console.log('Real URL:', realURL);
  }
};

// 发送请求
xhr.send();

请注意,在浏览器环境中,使用 XMLHttpRequest 对象时通常会遇到 CORS(跨源资源共享)限制。这意味着你可能无法从一个域名(例如 www.baidu.com)发送请求到另一个域名并获取响应。你可以在服务器端执行这样的请求,或者使用符合 CORS 要求的可用 API 或代理。

希望这些说明对你有所帮助!如果还有其他问题,请随时提问。

球一个最佳答案谢谢啦!这对我非常重要!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-31 16:40:28 | 显示全部楼层
Mike_python小 发表于 2023-7-31 16:38
关于 Tampermonkey JavaScript 问题和 Web 开发:

在你提供的代码中,view-source:https://www.baidu.com/ ...

我想搞到它的网页源代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-31 16:41:24 | 显示全部楼层
Threebody1 发表于 2023-7-31 13:40
我想搞到它的网页源代码

为什么用小号发?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-31 16:41:56 | 显示全部楼层

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-31 16:42:12 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-31 16:42:32 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-31 16:43:12 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-31 16:43:44 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-31 16:44:27 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-31 16:45:30 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-31 16:46:23 | 显示全部楼层

当然,请告诉我你有什么问题,我会尽力回答。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-31 16:47:14 | 显示全部楼层
Mike_python小 发表于 2023-7-31 16:46
当然,请告诉我你有什么问题,我会尽力回答。


我想搞到它的网页源代码而不是url
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-31 16:48:09 | 显示全部楼层
Threebody1 发表于 2023-7-31 16:47
我想搞到它的网页源代码而不是url

你爬取呗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-31 16:48:36 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-31 16:49:05 | 显示全部楼层
Threebody1 发表于 2023-7-31 13:47
我想搞到它的网页源代码而不是url
// ==UserScript==
// @name         Get Page Source Code
// @namespace    http://your-namespace.com
// @version      1.0
// @description  Get the page source code using Tampermonkey
// @match        https://www.baidu.com/*
// @grant        GM_xmlhttpRequest
// ==/UserScript==

(function() {
    'use strict';

    // 在适当的时机触发获取网页源代码的函数
    function getPageSourceCode() {
        var url = "https://www.baidu.com/link?url=vsdsl04PUGwYT-udMGNDBSgQ4D62grmcfm8fM4LVjYLVVMoaXT6EoDxqw0FKxHcy&wd=&eqid=979239ad000511ed0000000463453c3e";

        GM_xmlhttpRequest({
            method: "GET",
            url: url,
            onload: function(response) {
                console.log(response.responseText);  // 打印网页源代码
            }
        });
    }

    getPageSourceCode();  // 调用函数以获取网页源代码
})();
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-31 16:50:39 | 显示全部楼层
Uncaught (in promise) ReferenceError: GM_xmlhttpRequest is not defined
    at getPageSourceCode (userscript.html?name=Search-Cleaner.user.js&id=8065cae8-85e2-4373-970c-7eee03440a35:57:9)
    at userscript.html?name=Search-Cleaner.user.js&id=8065cae8-85e2-4373-970c-7eee03440a35:66:5
    at Object.<anonymous> (userscript.html?name=Search-Cleaner.user.js&id=8065cae8-85e2-4373-970c-7eee03440a35:67:3)
    at St (<anonymous>:9:89)
    at userscript.html?name=Search-Cleaner.user.js&id=8065cae8-85e2-4373-970c-7eee03440a35:1:90
    at window.__f__lkqnmpzy.yvt (userscript.html?name=Search-Cleaner.user.js&id=8065cae8-85e2-4373-970c-7eee03440a35:1:318)
    at St (<anonymous>:9:89)
    at s (<anonymous>:72:214)
    at <anonymous>:75:107
    at g (<anonymous>:69:364)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-31 16:52:18 | 显示全部楼层    本楼为最佳答案   

这个错误表明GM_xmlhttpRequest未定义,这可能是因为你没有正确引入Tampermonkey的API。请确保以下几点:

1. 你已经安装了Tampermonkey插件,并且在浏览器中启用了它。

2. 在脚本的元数据块(以// ==UserScript==开始的部分)中,添加了@grant GM_xmlhttpRequest

3. 确保你将脚本保存为.user.js文件,并通过Tampermonkey加载脚本。不要直接在HTML页面中引入脚本。

请检查这些方面是否正确,如果问题仍然存在,请尝试重新安装或更新Tampermonkey插件。另外,如果你使用的是其他用户脚本管理器,比如Greasemonkey,那么可能需要使用不同的API来发送XMLHttpRequest请求。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-31 16:54:34 | 显示全部楼层
Mike_python小 发表于 2023-7-31 16:52
这个错误表明GM_xmlhttpRequest未定义,这可能是因为你没有正确引入Tampermonkey的API。请确保以下几点: ...

谢谢,成功了,如何使用正则表达式替换?

评分

参与人数 1荣誉 -4 鱼币 -5 贡献 -3 收起 理由
歌者文明清理员 -4 -5 -3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 12:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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