映射博客之间链接连接的最佳方法是什么?

时间:2010-01-23 12:59:26

标签: r seo social-networking blogs web-crawler

我希望对一堆博客进行社交网络分析,绘制谁链接到谁(不仅仅是通过他们的博客,还包括他们的帖子)。什么软件可以执行这种爬行/数据收集/映射?

谢谢!

4 个答案:

答案 0 :(得分:3)

通过“映射”我不确定你是指将原始数据映射到正统的图形数据结构,还是将该数据结构映射到美学库以便渲染它。如果是前者,那么我猜这是一个直接的问题,即编写一个函数来将原始数据(w / r / t,博客链接到哪个,以及多少)转换为图形数据结构,例如邻接矩阵。映射这样的数据结构以便查看可以这样做:

library(Rgraphviz)
# create an synthetic adjacency matrix for 10 blogs
M = sapply(rep(10, 10), function(x){sample(c(0, 1), 10, T, c(0.7, 0.3))})
colnames(M) = paste(rep("b", 10), 1:10, sep="-")
rownames(M) = colnames(M) 
# 0's down the main diagonal (eliminate self-edges)
diag(M) = rep(0, 10)
# call the graphviz constructor, passing in adjacency matrix
M_gr = new("graphAM", adjMat=M, edgemode="directed")
g1 = layoutGraph(M_gr)
# (optional) aesthetic parameters for nodes & edges
graph.par( list(edges = list(col="gray", lty="dashed", lwd=1), 
            nodes = list( col="midnightblue", shape="ellipse", 
               textCol="darkred", fill="#B0B7C6", fontsize=11, 
               lty="dotted", lwd=2)) )
# call the device driver
png(file='somefilename.png', width=600, height=460, res=128)
# call the plot function
renderGraph(g1)
# kill the device
dev.off()

alt text http://img13.imageshack.us/img13/7683/bloggraph.png

如果您不仅要显示连接,而是显示这些连接的强度,例如,数量,或者从一个博客到另一个博客的链接频率,您可以通过单独设置线条粗细来实现,通过参数'lwd',我为所有边设置为2,对于此示例(另一个选项是按线型显示连接强度,例如,点线,虚线,实线,颜色)。当然,这些边权重必须在邻接矩阵中设置,这很简单 - 而不是'0'/'1'来表示'未连接'/连接,你可能想要使用'0' / '整数'。

答案 1 :(得分:2)

你也可以在R中使用RCurlXML(以获取博客文章)和类似igraph(对于SNA)的组合来执行此操作。您将需要解析HTML以获取所有链接,并且XML包可以非常轻松地处理这种处理。

有关SNA分析的一些指示,请查看this related question,尽管这是一个很大的研究领域。

答案 2 :(得分:1)

Nutch是一个不错的抓取工具,但您必须对索引数据进行自己的分析。

答案 3 :(得分:0)

为了记录,我强烈推荐使用Python中的机械化库 - 它可以轻松构建您自己的个性化爬虫/刮刀。