头条系 巨量算数 _signature
文章內(nèi)容僅供參考學(xué)習(xí),如有侵權(quán)請聯(lián)系作者進行刪除
????????本文介紹一種生成頭條系巨量算數(shù)web端接口"_signature"參數(shù)的思路,此思路應(yīng)該適用于所有頭條系_signature的生成,感興趣的同學(xué)可以嘗試下。網(wǎng)上介紹頭條抖音的_signature方法很多了,我也基本看了個遍,但是技術(shù)性都很高,很少有POST請求的例子,本文思路的方法效率不高,只能說能搞出來,下面開始吧。
????????首先我們要的是這個參數(shù)_signature
????????那我們從資源文件中搜索一下這個參數(shù)_signature,能定位到這里,用腳趾頭想了想如果我們直接去搞js源碼的話,會很難,也不太經(jīng)濟,既然我們是搞爬蟲的,那就是通過任何合法的手段達到能接受的最低效果就可以了。
????????對方的我方的工程師已經(jīng)很貼心的告訴我們了
// 開啟攔截器后,所有符合下面列表條件的 url 都會自動加上 _signature 參數(shù)。
????????到這里思路應(yīng)該清洗了,我們只要模擬請求一次,就會自動加上_signature參數(shù),我們把他們加好的參數(shù)拿下來就可以了。我們可以用大佬的方式補環(huán)境執(zhí)行js進行模擬請求,但是本人沒怎么接觸過不太會,我選擇用webdriver的方式驅(qū)動瀏覽器(雖然很傻這種),然后執(zhí)行js模擬請求一次就可以了,主要代碼如下(不要說為什么不用python寫,我寫了這么多年Java然后不用豈不是虧了):
private String getTrendinsightSignature(String method, String targetUrl, String body) {ChromeDriver driver = new ChromeDriver();String url = "https://trendinsight.oceanengine.com/arithmetic-index";driver.navigate().to(url);StringBuffer script = new StringBuffer().append("var xhr = new XMLHttpRequest();").append("xhr.open('").append(method).append("', '").append(targetUrl).append("', true);").append("xhr.setRequestHeader('accept', 'application/json, text/plain, */*');").append("xhr.setRequestHeader('accept-language', 'zh-CN,zh;q=0.9');").append("xhr.setRequestHeader('content-type', 'application/json;charset=UTF-8');").append("xhr.onload = function () {};");if (StrUtil.isNotEmpty(body)) {script.append("xhr.send('").append(body).append("');");}script.append("return xhr._url");String result = (String) driver.executeScript(script.toString());return result;}執(zhí)行結(jié)果:可以拿結(jié)果的_signature參數(shù),既然模擬請求了,也可以直接把返回結(jié)果數(shù)據(jù)拿到
此方法沒有經(jīng)過大規(guī)模請求測試,暫不清楚請求頻次多少合適,有興趣的同學(xué)可以試試。
--------------------------------------------
2021-08-20
經(jīng)測試,巨量百應(yīng)sign無法用此方式生成
---------------------------------------------
有交流爬蟲技術(shù)的同學(xué)可以加我微信呦
總結(jié)
以上是生活随笔為你收集整理的头条系 巨量算数 _signature的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于在Mac上挂载移动硬盘实现数据备份的
- 下一篇: AI研习丨专题:面向防疫的5G巡检机器人