最近沉迷游戏,却无奈手速不佳,未能抢到心仪的装备,于是就有了如下分析
首先来到活动页面
分析页面
首先,f12查看,找到指定的按钮的jspath或者selector,例如如下
这里有个小坑,因为如图所示,只有在这个在线风暴里面才有这个武器,所以我们要想拿到这个武器的按钮就必须先点击这个在线风暴
领取问题解决了,接下来就是最重要的登录问题了。
账号密码登录
这里又有一个坑,反复测试发现这里如果是直接在活动页面里面点击登录然后就操作不了登陆框中的账号密码登录按钮等,所以这里必须通过f12中的network中查找到对应的ajax操作。
或者搜索xin,找到形如如上的url即可,这里我们登录的思路是先在这个页面里面登录然后跳转到活动页面,这样就可以保证活动页面有之前会话时保存的信息,也就实现了登录。
然后通过chromedp定位输入等
End
Code
package main
import (
"context"
"github.com/chromedp/chromedp"
"time"
)
func main() {
//显示浏览器窗口
allocctx, cancel := chromedp.NewExecAllocator(
context.Background(),
)
defer cancel()
//创建chromedp上下文实例
ctx, cancel := chromedp.NewContext(allocctx)
defer cancel()
var err = chromedp.Run(ctx,
//先登录,通过活动页面f12->network->search->xin->找到形如下面的url
chromedp.Navigate(`https://xui.ptlogin2.qq.com/cgi-bin/xlogin?proxy_url=https://game.qq.com/comm-htdocs/milo/proxy.html&appid=21000124&target=top&s_url=https%3A%2F%2Fcf.qq.com%2F&style=20&daid=8`),
//等待页面加载成功
chromedp.Sleep(2*time.Second),
//点击账号密码登录
chromedp.Click(`switcher_plogin`, chromedp.ByID,chromedp.NodeVisible),
//输入账号 这里selector无解,jspath可以
chromedp.SendKeys(`document.querySelector("#u")`, "99746460",chromedp.ByJSPath),
//输入密码
chromedp.SendKeys(`document.querySelector("#p")`, "password",chromedp.ByJSPath),
//点击登录
chromedp.Click(`#login_button`),
chromedp.Sleep(1*time.Second),
//跳转到活动页面
chromedp.Navigate("https://cf.qq.com"),
//等待网页加载
chromedp.Sleep(1*time.Second),
//找到第二栏
chromedp.Click(`body > div.wrap > div > div.mind > div.nav > a.t2`),
//点击领取按钮
chromedp.Click(`div.part02 > ul > li:nth-child(1) > a`),
)
if err != nil {
panic(err)
}
}
原文始发于微信公众号(安全之道):Go+chromedp实现cf活动抢领
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论