rongchenlin / BiliBili-Lucky-Draw

B站抽奖转发——薅羊毛脚本 : 一个小脚本能够帮助你去看看B站上面今天有哪些Up有抽奖活动,然后还能帮助你自动进行抽奖(转发动态+关注),毕竟抽奖总得试试吗,万一中奖了呢
GNU General Public License v3.0
339 stars 44 forks source link

作者咨询一下 #6

Closed karhow closed 7 months ago

karhow commented 1 year ago

` if is_time_ok(time) is True:

判断是否互动抽奖

                is_draw_name = '//*[@id="page-dynamic"]/div[1]/div/div[1]/div[' + str(
                    i) + ']/div/div/div[3]/div/div[2]/div[2]/div/div[1]/span[2]'
                if is_xpath_exist(bro, is_draw_name) is True:
                    draw_cnt = draw_cnt + 1
                    last_draw_time = time

` get_user.py这段代码,is_draw_name 都没有关于抽奖的关键词,如何能判断是否抽奖?

rongchenlin commented 1 year ago

这段代码是用来获取扫描存在“抽奖动态”的用户,是根据标签进行定位的。

rongchenlin commented 1 year ago

抽奖转发的代码在其他文件中

rongchenlin commented 1 year ago

使用Xpath标签进行定位

karhow commented 1 year ago

作者大佬确定了关于属于抽奖的标签就一定在每条动态item的这个位置吗?//*[@id="page-dynamic"]/div[1]/div/div[1] 这部分应该是定位到动态list的,完整的xpath的标签应该是定位到转发的文本,例如: image 只要有这个转发的文本就能判定到是属于抽奖的动态吗?

karhow commented 1 year ago

作者大佬确定了关于属于抽奖的标签就一定在每条动态item的这个位置吗?//*[@id="page-dynamic"]/div[1]/div/div[1] 这部分应该是定位到动态list的,完整的xpath的标签应该是定位到转发的文本,例如: image 只要有这个转发的文本就能判定到是属于抽奖的动态吗?

image 补充一下这个完整的xpath:is_draw_name = '//*[@id="page-dynamic"]/div[1]/div/div[1]/div[' + str( i + 1) + ']/div/div/div[3]/div/div[2]/div[2]/div/div[1]/span[2]' 的判断应该是这部分,只要有这个span就能判断是抽奖了吗?这只能判断该用户是转发过别的东西,关于这点不是很懂,烦请大佬解答

rongchenlin commented 1 year ago

image 例如:使用//*[@id="page-dynamic"]/div[1]/div/div[1]/div[1]/div/div/div[3]/div/div[2]/div[2]/div/div[1]/span[2] 这个标签,对应如下: image 这里判断是否存在互动抽奖标签

karhow commented 1 year ago

好的,谢谢大佬的解答!

karhow commented 1 year ago

image 作者大佬,遇到一个问题,selenium打开动态首页的时候,出现验证码,导致不能加载到动态列表了,是ip被封了吗?这种情况怎么解决?如图所示

rongchenlin commented 1 year ago

暂未遇到,在浏览器手动点击验证码看是否可以有效。后面有空我尝试解决下。同时,如果你有好的解决方案,非常欢迎在issue中提出。

---原始邮件--- 发件人: "Karhow @.> 发送时间: 2023年6月2日(周五) 上午10:43 收件人: @.>; 抄送: @.**@.>; 主题: Re: [rongchenlin/BiliBili-Lucky-Draw] 作者咨询一下 (Issue #6)

作者大佬,遇到一个问题,selenium打开动态首页的时候,出现验证码,导致不能加载到动态列表了,是ip被封了吗?这种情况怎么解决?如图所示

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

rongchenlin commented 1 year ago

后续也会考虑增加监控方案和可视化控制方案

karhow commented 1 year ago

尝试给selenium的driver加了代理后。session好像一直会阻塞在queue中不能create

karhow commented 1 year ago

chrome_options.add_argument(

#     '--user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) '
#     'Chrome/101.0.4951.64 Safari/537.36') 是不是只有这个ua头才可以定位到这些动态item?

image 我发现我用其他user agent会的页面元素的class都变了 如下图元素,其实都动态list的item来的: image