使用python测量网站的深度

时间:2013-12-01 21:29:32

标签: python html css web-scraping web-analytics

我正在尝试使用python找到一种提取网站深度的方法。 子网站的深度等于主网站(例如www.ualberta.ca)所需的点击次数,以便用户到达子网站(例如www.ualberta.ca/beartracks)。因此,例如,如果需要一次额外的点击才能从主域访问子网站,子网站的深度将为1.

无论如何我用python测量这个?谢谢!

2 个答案:

答案 0 :(得分:0)

听起来你想要编写一个蜘蛛来从第一个网址进行广度优先搜索,直到找到第二个网址的链接。

我建议你看一下Scrapy包;它很容易做到。

答案 1 :(得分:0)

(1)您必须确保您的目标网站是静态的。例如,像亚马逊这样的网站,他们的网站由他们的数据库填充,他们的数据库以某种方式由客户驱动..亚马逊的数据库正在改变每一个第二。通过这种方式,你证明了包含“手套”的页面的深度是7,下一分钟,深度竟然是3,因为“围巾”在第一页,“手套”在“人们也买了”这个“清单。如此多的因素可能会改变您的目标网站。

(2)如果上述问题不成问题。你需要构建一些爬虫/蜘蛛来帮助你收集所有页面。(可能不是所有原始HTML的集合,但记录看起来像这样:)

currentURL  [links]
urlpage1 [urlpage2. urlpage3.. ]
urlpage2 [urlpage1, urlpage3...]
... 

以下是一些可以帮助您实现它的工具。

Scrapy(Python)

Apache Nutch(基于shell / Java)

(3)假设您已经收集了页面之间的所有映射关系。您只需要进一步计算所需页面与主页之间的“缩短长度”。现在你需要一个工具来分析深度。这里的数学模型与“社交网络分析”类似。和一些图形数据库一样

Neo4j”加号

Gephi

将非常适合这类任务。最后,你将获得一个美丽而可见的结果。您也可以使用R中的某些包来执行此操作。

这实际上是一个非常有趣的问题,它涉及一系列不同的编程功能。祝您的项目顺利,Stackoverflow将帮助您度过难关。