扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
解决思路
Trackback垃圾产生的重要原因是大量站长在流量利益的驱使下的“变态”行为,其中也包括大量国外的劣质SEO。我们只有从对这些行为分析的基础上来解决Trackback垃圾问题。
我们知道,Trackback垃圾发送者有2个目的:一是希望用户通过连接访问他们的网站(比如一些美女色情站),二是希望搜索引擎加强他们网站的排名和收录。因此,他们通常都有Trackback回溯地址。我们通过这些地址的分析可以找出一些有价值的规律。然后基于这个规律上去清理Trackback垃圾。
收集Trackback信息
CSDN Blog的Trackback保存在一个名叫blog_feedback的数据表中,我们先尝试对Trackback回溯地址(数据库字段DisplayUrl)进行提取主域名的分析。做法可以直接在这个表上新建一个DisplayUrlRoot字段进行保存。
update blog_feedback set DisplayUrlRoot=dbo.getUrlRoot(DisplayUrl) where feedbacktype=2
其中getUrlRoot是一个用户自定义函数,获取回溯地址的主域名
CREATE FUNCTION [dbo].[getUrlRoot]
(@sURL nvarchar(256))
RETURNS nvarchar(256)
AS
BEGIN
declare @m_f int
declare @m_len int
declare @ret nvarchar(256)
set @ret=''select @m_f = PATINDEX('%//%', @sURL)
if (@m_f = 6) -- Is HTTP URL Format
begin
select @m_len = LEN(@sURL)
select @m_f = PATINDEX('%/%', SUBSTRING(@sURL, 8, @m_len-7))
if (@m_f != 0)
begin
select @ret = SUBSTRING(@sURL, 8, @m_f-1)
end
else --没有发现'/'
begin
select @ret = SUBSTRING(@sURL, 8, @m_len-7)
end
select @m_f = PATINDEX('%.%', @ret)
select @ret = SUBSTRING(@ret, @m_f+1, LEN(@ret)-@m_f)
end
return @ret
END
这样我们对每个Trackback就获取了一个回溯地址的主域名,下面的分析基于这个新字段进行统计分析。所以之前应该为这个字段加上一个索引。
统计Trackback信息
在SQL查询分析器中执行下面语句
select DisplayUrlRoot, count(ID) from blog_feedback where DisplayUrlRoot is not null
group by DisplayUrlRoot having(count(ID))>50 order by count(ID) desc
我们可以看到所有Trackback回溯地址的主域名有50个以上的域名列表,在CSDN Blog的排名前5个是
域名:alice.it 条目数:39337
域名:blogspot.com 条目数:14447
域名:editme.com 条目数:8439
域名:aol.com 条目数:7043
域名:psl.lt 条目数:6907
经过检查,这里全是Trackback垃圾。
Trackback清理方法
在CSDN Blog,条目数大于50的Trackback回溯地址的主域名有367个,大量国外不知名的域名我们不需要检查,只需要重点筛选一些知名和相关网站即可。我们发现,对于CSDN Blog的Trackback而言,只有来自以下3个域名的Trackback是全部“干净的”:csdn.net、cnblogs.com、donews.net,另外,msn.com有一半左右是“干净的”。
现在我们开始清理了,执行下面这条语句:
delete blog_feedback where DisplayUrlRoot in
(select DisplayUrlRoot from blog_feedback where DisplayUrlRoot is not null and
DisplayUrlRoot not in ('csdn.net', 'donews.net', 'cnblogs.com', 'msn.com')
group by DisplayUrlRoot having(count(ID))>50)
执行后,近24万多条Trackback垃圾马上消失。仅留下了16394条有用的信息。
那些知名网站Trackback垃圾多?
以下纯粹是CSDN Blog统计分析的结果,仅说明某些人借助一些知名网站进行垃圾传播:
域名:blogspot.com 条目数:14447
域名:aol.com 条目数:7043
域名:blog.hexun.com 条目数:6621
域名:blog.ccidnet.com 条目数:4980
域名:netscape.com 条目数:1378
域名:baidu.com 条目数:804
域名:a8.com 条目数:704
域名:blog.sohu.com 条目数:344
域名:china.alibaba.com 条目数:243
结语
本文基于对Trackback回溯地址主域名的统计分析的基础上给出了一种大批量消除Trackback垃圾的方法,值得大型BSP借鉴。
Update:
前面提到,msn.com有一半左右是“干净的”,如何清理呢?我也发现,99.9%的正常从msn.com过来的Trackback没有标题,而垃圾Trackback是全部有标题,这是一个有用的线索。执行:
delete blog_feedback where DisplayUrlRoot = 'msn.com' and title<>'' and ID not in (有限的几个有用的ID)
可以清理这些垃圾。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者