求助——实战 Fetch 劫持知乎返回内容
!(data/attachment/forum/202307/16/165700m2yaa2idsa223s4d.png)请问下是怎么抓到这个链接的?😳 f12-> 网络
然后触发一下数据刷新
一个一个数据包看 李恒道 发表于 2023-7-16 18:58
f12-> 网络
然后触发一下数据刷新
一个一个数据包看
噢噢,谢谢道哥哥,我还以为道哥哥藏了一手,哈哈哈
我也找到了title了{:4_111:} 梦泽宇 发表于 2023-7-16 20:41
噢噢,谢谢道哥哥,我还以为道哥哥藏了一手,哈哈哈
我也找到了title了 ...
反正就是进去挨个点开看看,找到对应的xhr/fetch就可以抬手劫持了 李恒道 发表于 2023-7-16 21:08
反正就是进去挨个点开看看,找到对应的xhr/fetch就可以抬手劫持了
发现个问题道哥,挂了这个修改标题的脚本,知乎加载特别慢,一直都在加载,这有解决办法吗? 首次进去没什么问题,刷新一下之后就一直加载不出来 梦泽宇 发表于 2023-7-16 21:20
首次进去没什么问题,刷新一下之后就一直加载不出来
首次加载走的SSR合水
第二次刷新才是一直加载不出来
你自己写的劫持代码吗?
代码论坛丢一份看看 李恒道 发表于 2023-7-16 23:49
首次加载走的SSR合水
第二次刷新才是一直加载不出来
你自己写的劫持代码吗?
跟着哥哥的教程走的
// ==UserScript==
// @name 实战知乎劫持返回内容
// @namespace https://bbs.tampermonkey.net.cn/
// @version 0.1.0
// @descriptiontry to take over the world!
// @author You
// @match https://www.zhihu.com/*
// @run-at document-start
// @grant none
// ==/UserScript==
let oldFetch = fetch;
function hookFetch(...args) {
return new Promise((resolve, reject) => {
oldFetch.call(this, ...args).then((response) => {
if (
args.length !== 0 &&
args.indexOf &&
args.indexOf("/api/v3/feed/topstory/recommend") !== -1
) {
const oldJson = response.json;
response.json = function () {
return new Promise((resolve, reject) => {
oldJson.apply(this, arguments).then((result) => {
//在这里对json函数返回的数据进行修改,然后再resolve出去
result.data.forEach((articleItem) => {
articleItem.target.question.title = "油猴脚本实战";
});
resolve(result);
});
});
};
}
resolve(response);
});
});
}
window.fetch = hookFetch; 梦泽宇 发表于 2023-7-17 10:06
跟着哥哥的教程走的
报错是实战知乎劫持返回内容.user.js:28 Uncaught (in promise) TypeError: Cannot set properties of undefined (setting 'title')
出错行是
articleItem.target.question.title = "油猴脚本实战";
说明兼容性不太好,有些没有标题
那就加个if判断
result.data.forEach((articleItem) => {
if(articleItem.target.question!==undefined){
articleItem.target.question.title = "油猴脚本实战";
}
}); 李恒道 发表于 2023-7-17 14:48
报错是实战知乎劫持返回内容.user.js:28 Uncaught (in promise) TypeError: Cannot set properties of un ...
噢噢,感谢道哥
页:
[1]