無覓相關文章流氓式連接跳轉——流量分析(二)

昨天寫的流量分析(一),請戳:使用wireshark進行數據連接層的抓包分析——流量分析(一)
請輸入圖片描述
先看一張博客的百度統計流量來源網站截圖,可見來自wumii的流量相對較高,可是實際並無把文章發佈到wumii,那它是哪來的呢?原來是用了wp的相關文章插件。下面一張對比圖表示了wumii插件加載的js對相關文章連接的更改:鼠標未點擊時連接爲本站的url,鼠標點着不放的時候它會把連接變爲wumiiredirect並加上要跳轉地址的參數,鼠標鬆開的時候執行連接跳轉事件——通過它的一次跳轉就把用戶流量導向了wumii,來源網站就變成了wumii——有興趣的童鞋能夠在大超超在思考博客文章下方相關文章區試試看。
請輸入圖片描述html

咱們來看一下它這個redirect生成的HTML源代碼:數據庫

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<script>
    var url = 'http:\/\/www.thinkful.cn\/archives\/395.html?d=plugin.wummi.arelated';
    var ts = '1390652331339';
    var userAgent = navigator.userAgent.toLowerCase();

    var isMSIE = (/msie/.test(userAgent)) && (!/opera/.test(userAgent));
    if (!isMSIE) {
        location.replace(url);
    } else {
        var currentTs = (new Date()).getTime();

        if (!ts || currentTs - ts <= 4000) {
            var e = document.createElement('a');
            e.href = url;
            document.body.appendChild(e);
            e.click();
        } else {
            history.back();
        }
    }
</script>

</body>
</html>

可見用的是js方式跳轉文章。segmentfault

無覓爲何要繞這個圈子呢?要麼直接給用戶展現相關文章連接,而且不要在點擊的時候作小動做,要麼就直白點,把連接弄成wumii的,不要作一個點擊時才變換連接地址。app

相信無覓應該是爲了他們網站更好的閱讀體驗和更佳、更精準的相關文章推薦,將用戶這次點擊在redirect的處理程序裏做下記錄存入數據庫。dom

若是是這樣,對比百度分享提供的關聯文章功能,百度就沒有把連接轉回他們那邊,可是它一樣能夠統計到用戶是點擊了這個推薦裏的連接(鼠標鬆開時會異步請求百度的一個統計連接)。異步

給一個解決思路:在wumii異步加載好相關文章時,能夠改變它加載完成的內容,或者用js從新渲染一下dom元素使綁定改變連接的事件失效等。使用setInterval來作是個思路,見如下代碼(我作的是把連接後加上來自wumii的標籤便於統計):網站

// wumii關聯文章插件修改 @ 2014-01-24 15:19:34
$(function(){
    var wumiiSitePrefix = "http://www.thinkful.cn";
    var wumiiEnableCustomPos = false;
    var wumiiParams = "&num=6&mode=3&displayInFeed=1&version=1.0.5.5&pf=WordPress3.5";
    // 避開加載高峯異步加載wumii
    setTimeout(function(){
        // 獲取主插件js
        $.getScript("http://widget.wumii.com/ext/relatedItemsWidget.htm");
        // 修改連接原跳轉方式
        var wumiiLinkReplace = setInterval(function(){
            // 判斷是否完成dom加載
            if( $("a.wumii-image-block").length ){
                // 添加來自wumii的標籤(seo不推薦)
                var $wumiiBlocks = $("a.wumii-image-block");
                $.each($wumiiBlocks, function(k, v){
                    var url = $(this).attr("href");
                    $(this).attr("href", url+"?d=plugin.wummi.arelated");
                });
                // 完成後清除這個定時器
                clearInterval(wumiiLinkReplace);
            }
        }, 300);
    }, 1000);
});
相關文章
相關標籤/搜索