求救,菜鸡实在搞不定了
javascript吧
全部回复
仅看楼主
level 4
zhenfuyou521 楼主
地址https://t.bilibili.com/779835524206559329
自己想做个b站脚本,一直定位不到元素,这个元素是鼠标悬停到头像会出现的关注按钮,但是他在不悬停的时候是不会出现在网页源代码上的就像下面这样
鼠标悬停后会出现
直接queryselector定位不到,自己试过设置鼠标悬停事件
依旧不行实在没办法了,去qq里问还被骗了红包,我太惨了,请大佬给看一眼
2023年04月05日 12点04分 1
level 4
zhenfuyou521 楼主
需要定位到这个元素
var guanzhu = document.querySelector('.bili-user-profile-view__info__button.follow:not(.checked)')
if (guanzhu){
guanzhu.click()
}//关注按钮
2023年04月05日 12点04分 2
level 7
一个曲线实现:
$("div .bili-dyn-title").click() 打开账号的主页,然后在新页面实现自动关注 /doge
域名不同得用脚本插件自身的配置项传递值。。
2023年04月05日 13点04分 3
嗯的确可以这样,但要多打开一个页面,有点废资源和时间,这个页面是抽奖页面,一般要有100多个,也就是要多打开100多个页面,大佬有没有其他方法?
2023年04月05日 15点04分
level 13

你确定你有试?
2023年04月06日 12点04分 4
弹出层要触发 mouse enter 事件才会有。。不是隐藏后再显示; 看了这么多提问,这个已经算是有点基础并尽力表达了……
2023年04月07日 05点04分
我当然有,这个元素是动态添加的,不是隐藏起来的,你打开这个网页后如果鼠标移动到头像上,这个元素才会被添加到原网页代码中,如果打开网页什么也不做,直接是获取不到这个元素的
2023年04月09日 09点04分
@zhenfuyou521 所以啊,我找到让他出来的办法了啊,你要是看不懂的话那就算了。
2023年04月09日 13点04分
@BSPR0002 好吧我看不懂,是我太菜了,还是大佬厉害
2023年04月09日 13点04分
level 12
你要做什么脚本?实现什么功能?
元素是要悬浮才出现的,你从外部正常方式不可能通过代码触发
2023年04月07日 09点04分 5
这是自动抽奖脚本,其中的一个步骤是关注up
2023年04月09日 09点04分
@zhenfuyou521 写爬虫搞啊
2023年04月10日 01点04分
level 10
它是鼠标移到上面之后才加载那个弹窗的,所以获取不到这个按钮,要先把鼠标移上去等它加载完之后才能获取到
2023年04月07日 09点04分 8
document.getElementsByClassName('bili-dyn-item__avatar')[0].addEventListener('mouseenter', function () { setTimeout(() => { document.getElementsByClassName('bili-user-profile-view__info__button')[0].click()},3000) })
2023年04月07日 09点04分
不行,这个方法我试过,没有反应,原理是这样的,但是无法实现效果
2023年04月09日 09点04分
@zhenfuyou521 我在你发的那个网址试了没问题啊
2023年04月10日 01点04分
level 4
zhenfuyou521 楼主
@BSPR0002没你想得那么简单,要是真是这种基础问题我会做不到?
2023年04月09日 13点04分 9
嗯?基础问题?你的问题确实很基础呢,你要不要看看你这里写的啥?抄都没抄对就能叫你也是离谱,键名加空格我就不说你什么了,query 选择器加了空格给整无效了难道不是你自己的问题?
2023年04月10日 21点04分
@BSPR0002 还有,@zhenfuyou521 at 人都不会,好像你没什么资格说这种话吧。
2023年04月10日 21点04分
@BSPR0002 哦,我错了大佬,确实是我的问题,我也确实不会在贴吧@人,在网页回复没有at人的选项啊,还有个问题我用mouseover事件和带轨移动都没法触发这个事件是什么原因?我是初学者设置事件我以为是基础问题,是我不知天高地厚了,给大佬道歉了
2023年04月10日 23点04分
@zhenfuyou521 别人监听的就是 mouseenter 啊,这还用问为什么的?[汗]
2023年04月11日 00点04分
level 1
你这种技术应该是属于GM脚本,自己开发浏览器插件,行业叫油猴脚本
2023年04月12日 08点04分 11
level 1
上面这些代码,应该是获取不到得,这涉及到跨域了,你等于是自己写了一个HTML页面,里面通过JS代码,去访问B站得这个页面,你得代码根本就没有在B站得页面中运行起来,怎么可能获取得到
2023年04月12日 08点04分 12
level 1
你得思路就是,异步请求打开B站,然后定位到改页面中那个关注按钮,然后执行单击,必须要确定B站有没有反异步请求技术,一般网站是不允许类似于爬虫访问得
2023年04月12日 08点04分 14
已经解决了,设置个事件监听器就行了
2023年05月26日 00点05分
level 8
https://t.bilibili.com/779835524206559329为例:
1. 获取文章的id
779835524206559329,这个应该没问题
2. 获取文章作者的id
使用这个接口:https://api.bilibili.com/x/polymer/web-dynamic/v1/detail?id={文章id}&features=itemOpusStyle
响应:res.data.item.modules.module_author.mid就是作者id
3. 关注作者
使用这个POST接口https://api.bilibili.com/x/relation/modify
请求参数:
act:1
fid:{作者id}
spmid:
re_src:0
csrf:bfafe3b839c0df3a1bb4ef650f3ccd8f
其中的act1表示关注,0表示取关
csrf来自于登录后的cookie
2023年06月08日 01点06分 15
1