好多粉如何使用头条js布码方式上报数据?

JavaScript036

好多粉如何使用头条js布码方式上报数据?,第1张

好多粉数据上报之头条线索-JS布码上报数据教程

1.新建js转化

在广告投放平台找到资产-转化跟踪-新建线索转化-选择使用js布码,填写转化名称、选择转化目标

2.获取代码

3.安装代码

转化代码安装方法:按需安装,只需要上传复制数据安装第一个即可,已开启行为转化功能可以安装第二个上传行为转化数据!

上传复制数据:

在好多粉复制回调代码中安装转化代码。当访客复制数据后即会调用此代码,然后就可以执行头条的转化代码上传数据!

上传自定义行为转化数据:

在好多粉转化回调代码中安装转化代码。当统计到访客的转化行为数据后即会调用此代码,然后就可以执行头条的转化代码上传数据!

4.代码检查并激活

以上步骤就可以完成头条js布码方式上报数据了!

最近研究了一下js加密,发现今日头条比较适合练手,在头条获取数据的XHR中request参数有一项_signature参数,这个是就是经过js加密的数据。解决方案在最后。 先说寻找逻辑,叫顺藤摸瓜,藤是params中的key,瓜是js函数,在哪里摸,我用的是chrome F12,全局查找,就是在网址ctrl+f,注意看结果,前面有url这种一般都是在headers之类带着没什么价值,要看出来具体数据的。 然后在preview里,格式化看得清楚,还是查找signature。 这样就成功一大半了。顺便还找到了as和cp as: e.as,cp: e.cp, 这个e也在前面定义了var e = ascp.getHoney(),然后在搜索getHoney,就找到了。 把这段复制进pycharm的zhu.js文件里,然后新建一个python文件来运行,nodejs直接运行也行。 额,报错了,execjs._exceptions.ProgramError: ReferenceError: md5 is not defined 赶紧查了一下md5是个加密模块, nodejs安装MD5 ,然后改装了改装一下,增加了var md5 = require('md5-node')运行成功。 然后就到了signature, _signature: i,i = TAC.sign("refresh" === t ? 0 : r.params.max_behot_time_tmp)) params.max_behot_time_tmp应该是在回传的数据里的max_behot_time了。 首次请求是0,后来的是根据前一次请求的后传数据继续请求。不知所云,但还是按照老办法试试看能不能运行。 execjs._exceptions.ProgramError: TypeError: Cannot read property 'userAgent' of undefined。 这回我参考一下 别人怎么办原来要加useagent, global.navigator={} global.navigator.userAgent= 然后变成这样 调用发现又有错误: 好像说的是var data = TAC.sign(0)之前出现了一个不该出现的逗号,把它改成分号,果然成功了, 满怀欣喜的把signature,cp,as找到拼接成url发送,结果并不能返回数据。 有些忧郁的又看看别人怎么办, 用selenium获取参数 ,phantomjs不维护了,听说chrome headless可以替代之, 别人家说这么用 ,chrome还是打开窗口了,后来发现chromedriver.exe版本与chrome有严格的对应关系。 官网这样说总算是chrome是无头的了,现在只差跟着up主把参数弄出来就行了,因为有了前面的查找,selenium执行的函数名称也很清楚, signature = brower.execute_script('return TAC.sign(0)') 果然出来一个参数,开心的拼接url发送请求还是没数据回来。。。 忧伤的想了好久,尝试了多次,终于在手机版里发现可以不用cp和as参数,用哪里生成的signature都能拼接出结果,只是max_behot_time是藏在前一页最后一项的信息里 用requests的session或者scrapy都能连续爬取了。不过m站将返回数量20写进了js里,更改params的参数也不能控制一次的爬取量还是很是遗憾。 结果 好像必须带着cookie才能爬取后续的,不然永远都只能爬取第一页的内容,获取cookie用request的session都不行可能只能用selenium获取cookie之后再来。忧伤。。。

知乎登录踩坑记。。

打开主页,登录,抓包三连。根据响应内容,可以确定这个就是登录的包:

虽然找到了解决办法,得到正确的结果。但是这个办法不是我想要找到的办法,就这样稀里糊涂的过了自己也没什么收获。于是我花了很久去研究到底是触发了什么检测导致的结果不同,最后终于找到了关键点。其实答案我们早就找到了,只是没去注意而已。

结束~~

算是见识到逻辑混淆的厉(e)害(xin)了,真的是一不注意就进坑。。他不对也不给你报错,就走一个相反的逻辑给个错误的执行结果就行了,然后也不好排查问题所在。知乎的这个算是个低配版的头条_signature吧,头条的那个要更恶心一点。年轻人就要多踩坑···