tampermonkey js问题
如题,我在操作百度时发现连接不是真实地址,如view-source:https://www.baidu.com/link?url=vsdsl04PUGwYT-udMGNDBSgQ4D62grmcfm8fM4LVjYLVVMoaXT6EoDxqw0FKxHcy&wd=&eqid=979239ad000511ed0000000463453c3e
源代码有这个
然后我 request = require("request")
??
在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
// @descriptionExample 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中没有实际作用。
希望这个示例对你有帮助!如果你有更多问题,请随时提问。
如果问题已经解决,请设置最佳答案 本帖最后由 Mike_python小 于 2023-7-31 13:42 编辑
关于 Tampermonkey JavaScript 问题和 Web 开发:
在你提供的代码中,view-source:https://www.baidu.com/link?url=vsdsl04PUGwYT-udMGNDBSgQ4D62grmcfm8fM4LVjYLVVMoaXT6EoDxqw0FKxHcy&wd=&eqid=979239ad000511ed0000000463453c3e 是一个 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 或代理。
希望这些说明对你有所帮助!如果还有其他问题,请随时提问。
球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}
Mike_python小 发表于 2023-7-31 16:38
关于 Tampermonkey JavaScript 问题和 Web 开发:
在你提供的代码中,view-source:https://www.baidu.com/ ...
我想搞到它的网页源代码 Threebody1 发表于 2023-7-31 13:40
我想搞到它的网页源代码
为什么用小号发? Mike_python小 发表于 2023-7-31 16:41
为什么用小号发?
{:10_256:} Threebody1 发表于 2023-7-31 13:41
难道是.... Mike_python小 发表于 2023-7-31 16:42
难道是....
?? Threebody1 发表于 2023-7-31 13:42
??
{:10_256:}没事 Mike_python小 发表于 2023-7-31 16:43
没事
快说 Threebody1 发表于 2023-7-31 13:43
快说
{:10_256:} Mike_python小 发表于 2023-7-31 16:44
快回答问题 Threebody1 发表于 2023-7-31 13:45
快回答问题
当然,请告诉我你有什么问题,我会尽力回答。 Mike_python小 发表于 2023-7-31 16:46
当然,请告诉我你有什么问题,我会尽力回答。
我想搞到它的网页源代码而不是url Threebody1 发表于 2023-7-31 16:47
我想搞到它的网页源代码而不是url
你爬取呗 liuhongrun2022 发表于 2023-7-31 16:48
你爬取呗
Js不会 Threebody1 发表于 2023-7-31 13:47
我想搞到它的网页源代码而不是url
// ==UserScript==
// @name Get Page Source Code
// @namespace http://your-namespace.com
// @version 1.0
// @descriptionGet 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();// 调用函数以获取网页源代码
})();
Mike_python小 发表于 2023-7-31 16:49
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) Threebody1 发表于 2023-7-31 13:50
这个错误表明GM_xmlhttpRequest未定义,这可能是因为你没有正确引入Tampermonkey的API。请确保以下几点:
1. 你已经安装了Tampermonkey插件,并且在浏览器中启用了它。
2. 在脚本的元数据块(以// ==UserScript==开始的部分)中,添加了@grant GM_xmlhttpRequest。
3. 确保你将脚本保存为.user.js文件,并通过Tampermonkey加载脚本。不要直接在HTML页面中引入脚本。
请检查这些方面是否正确,如果问题仍然存在,请尝试重新安装或更新Tampermonkey插件。另外,如果你使用的是其他用户脚本管理器,比如Greasemonkey,那么可能需要使用不同的API来发送XMLHttpRequest请求。
Mike_python小 发表于 2023-7-31 16:52
这个错误表明GM_xmlhttpRequest未定义,这可能是因为你没有正确引入Tampermonkey的API。请确保以下几点: ...
谢谢,成功了,如何使用正则表达式替换?