teddyxlandlee
需要在有“查看投票参与人”按钮的投票帖中加一个按钮“导出至CSV”

csv表头:
  1. Type,TotalCredits,Nuggets,Emeralds,DingTies,Nickname,UserGroupName,UID
复制代码

依次为:投票项目、经验总数、金粒、宝石、顶帖数、昵称、等级名称、UID。

其中UID从用户名的那个链接(href)中截取,经验总数、金粒、宝石、昵称、等级名称从MBW的积分查询API中获取,顶帖数用xmdhs的api:
  1. https://auto.xmdhs.com/getforuid?uid=<UID>
复制代码

破损的鞘翅

teddyxlandlee
破损的鞘翅 发表于 2023-8-17 16:41
要获取的数据比较多,但请求数据的方式没有采用并发式的,而是等前面的数据获取完了再获取下一个。一是懒 ...

跨域我可以手动开,如果可以的话还是用mbw的api吧

破损的鞘翅
teddyxlandlee 发表于 2023-8-17 17:59
跨域我可以手动开,如果可以的话还是用mbw的api吧
因为mbw有缓存,不怕打(确信) ...




现在是5个5个一组,感觉问题不大

另外,解析html确实算是下策,不确定因素比较多
不知道bbs本身有没有api可以用
我永远喜欢前后端分离(

teddyxlandlee
破损的鞘翅 发表于 2023-8-17 09:07
现在是5个5个一组,感觉问题不大

另外,解析html确实算是下策,不确定因素比较多

追加:
Uncaught SyntaxError: expected expression, got ')'
  

破损的鞘翅
teddyxlandlee 发表于 2023-8-18 09:44
Uncaught (in promise) TypeError: html.querySelector(...) is null

你正在爬的投票贴是哪个?调试页里的网络tab那边有没有红色的请求

teddyxlandlee
破损的鞘翅 发表于 2023-8-18 12:34
你正在爬的投票贴是哪个?调试页里的网络tab那边有没有红色的请求

我的帖子列表中最新的那个,感谢

破损的鞘翅
teddyxlandlee 发表于 2023-8-18 12:36
我的帖子列表中最新的那个,感谢



加入了一个没获取到投票结果时就等1s后重试的功能
我猜测是你那边由于奇怪的网络原因,导致获取投票结果的请求没能返回正常的数据。现在如果数据有异常会打印到控制台

teddyxlandlee
破损的鞘翅 发表于 2023-8-18 13:23
加入了一个没获取到投票结果时就等1s后重试的功能
我猜测是你那边由于奇怪的网络原因,导致获取投票结果 ...
已拦截跨源请求:同源策略禁止读取位于 https://mcbbs.wiki/rest.php/mbwutils/v0/credit/******* 的远程资源。(原因:CORS 头缺少 'Access-Control-Allow-Origin')。状态码:200。

既然跨源被浏览器拦截了,那隔壁的SPXX为什么可以跨源获取漏洞翻译的文本呢?

破损的鞘翅
teddyxlandlee 发表于 2023-8-18 13:52
既然跨源被浏览器拦截了,那隔壁的SPXX为什么可以跨源获取漏洞翻译的文本呢?

↑这个用@connect和@grant ...

那个不是单靠@connect就能搞定的,还要用@grant请求GM_xmlhttpRequest权限,然后用GM_xmlhttpRequest这个方法去发出请求,只有用这个方法,油猴才知道你是在向谁发出请求,然后检查目标域名有没有被connect,有的话,油猴以扩展程序的身份去发起请求,再把数据还给脚本。油猴相当于代理。但是这种请求,控制台里是看不见的。单纯connect,脚本内直接用fetch,实际上还是会被跨域策略阻止。
window没了,因为用了@grant,这时候用unsafeWindow代替window就行

teddyxlandlee
破损的鞘翅 发表于 2023-8-18 14:33
那个不是单靠@connect就能搞定的,还要用@grant请求GM_xmlhttpRequest权限,然后用GM_xmlhttpRequest这个 ...

那么为什么xmdhs的提升卡记录,直接用的fetch却可以访问,mcbbs.wiki的就会拦截?

破损的鞘翅
teddyxlandlee 发表于 2023-8-18 14:35
那么为什么xmdhs的提升卡记录,直接用的fetch却可以访问,mcbbs.wiki的就会拦截? ...

因为xmdhs的服务器配置了"Access-Control-Allow-Origin:*"响应头。
Access-Control-Allow-Origin 响应标头指定了该响应的资源是否被允许与给定的来源(origin)共享。

https://developer.mozilla.org/zh ... ontrol-Allow-Origin

teddyxlandlee
破损的鞘翅 发表于 2023-8-18 14:43
因为xmdhs的服务器配置了"Access-Control-Allow-Origin:*"响应头。

https://developer.mozilla.org/zh-C ...

如何修改脚本呢?现在的fetch看来是不能用了

破损的鞘翅
teddyxlandlee 发表于 2023-8-18 14:45
如何修改脚本呢?现在的fetch看来是不能用了



脚本元数据那里@connect mcbbs.wiki;@grant GM_xmlhttpRequest
然后把getUserInfoByApi里的fetch方法换成GM_xmlhttpRequest就行(不过不能直接换,要把后者包装成promise


strings


1.zip (9.65 KB, 下载次数: 0)

怎么说呢,你也别太指望这个统计的作用。