步骤
1、分析列表请求
2、分析请求参数
3、分析点赞请求
4、分析点赞参数
5、编写执行代码
我们上次分析过 动态爬虫之QQ好友列表 动态爬虫之QQ好友列表 今天这篇继续按照上次的思路来,如果您看过我上篇建议您直接看参数按照以前的操作就好
1、分析列表请求
首先我们还是打开这个网址 https://h5.qzone.qq.com/mqzone/index 并且登陆
打开chrome 调试工具,找到拦截请求这一块刷新一下页面(为了页面排版,我只截取了一小部分)
然而并没有发现与动态相关代码因为qzone 为了减少客户端的渲染压力提高用户体验,第一次直接在服务端进行渲染返回了
既然是服务端加载而我们又不想消耗很多性能,那只有看一下加载下一页的数据返回是否是服务器渲染 将页面拉到最底部,清空拦截的数据,然后点击加载更多
这边就看到了qzone动态列表的这个请求
2、分析请求参数
query string parameter
qzonetoken
g_tk
form data
res_type 固定 0
res_attach
refresh_type 固定2
format 固定json
attach_info
这边 qzonetoken 和 g_tk 跟上次一样,我就直接复制过来了
|
|
这边只剩下两参数,仔细的你会看出两个参数其实值是一样的
所以我们只需要找一个参数就可以取到动态列表(其实在登陆情况下直接 get 请求链接也是可以取到动态的)
这边我们来搜索一下 res_attach 这个参数
有没有熟悉的味道,没错又是放在静态页面中的 FrontPage 里面,所以直接拿出来(注意:在静态页面中提取出来的只能第一次使用,每次请求接口服务器都会返回新的)
|
|
3、分析点赞请求
先刷新动态页面,然后选择第一条进行点赞,查看拦截
发现 url 中必有 qzonetoken 和 g_tk 这边分析一下post的参数就好了
4、分析点赞参数
这边就不讲 qzonetoken 和 g_tk 了因为这两个参数上面就说过了怎么拿过来 (这边只管发说说的,不管分享的链接和其他的)
form data
opuin:* 点赞的账号 也就是你当前登录的qq 号
unikey:http://user.qzone.qq.com/\**/mood/18623a5f8da5715907360500
curkey: http://user.qzone.qq.com/\*\*\*/mood/18623a5f8da5715907360500
appid: 固定 311
opr_type:固定 like
format:固定 purejson
先找一下 unikey 看下这个参数 (unikey 和 curkey 值很多时候是一样的,如果是转发的说说,这两个参数就不一样了,所以不要偷懒)
发现参数是在一个 comm.orglikekey 直接在动态列表数据里面搜索 orglikekey 字段 result.data.vFeeds.comm.orglikekey
直接搜索 curlikekey 发现是在 orglikekey的下面一条 curlikekey
5、编写执行代码
先把这些参数都取过来
拼接参数执行返回结果 这边记住 post 请求一定要设置 XMLHttpRequest 的 withCredentials = true
|
|
|
|
由于数据量庞大所以返回可能会慢一点 现在开始造点赞的参数
完整代码
全自动秒赞 但是登陆验证码需要自己输入 这边js可能会导致phantomjs内存泄漏,所以我过两个小时会把 phantomjs 关闭