【问题标题】:measuring a depth of a website using python [closed]使用python测量网站的深度[关闭]
【发布时间】:2013-12-17 12:32:21
【问题描述】:
我正在尝试找到一种方法来使用 python 提取网站的深度。
子网站的深度等于用户访问子网站(例如 www.ualberta.ca/beartracks)所需的主网站(例如 www.ualberta.ca)的点击次数。因此,例如,如果从主域访问子网站需要额外点击一次,则子网站的深度将为 1。
无论如何我可以使用 python 来测量这个吗?谢谢!
【问题讨论】:
标签:
python
html
css
web-scraping
web-analytics
【解决方案1】:
(1) 你必须确保你的目标网站是静态的。例如,像亚马逊这样的网站,他们的网站由他们的数据库填充,他们的数据库以某种方式由客户驱动。亚马逊的数据库每时每刻都在变化第二。这样,你证明了包含“glove”的页面的深度是7,下一分钟,深度变成了3,因为“scarf”在第一页,“glove”在“人们也买了”这个”列表。很多因素都会改变您的目标网站。
(2) 如果上述问题不是问题。您需要构建一些爬虫/蜘蛛来帮助您收集所有页面。(可能不是所有原始 HTML 的集合,但记录如下所示:)
currentURL [links]
urlpage1 [urlpage2. urlpage3.. ]
urlpage2 [urlpage1, urlpage3...]
...
这里有一些工具可以帮助您实现它。
Scrapy (Python)
Apache Nutch(基于 shell/Java)
(3) 假设你已经收集了所有页面之间的映射关系。您只需要进一步计算您想要的页面和主页之间的“短路长度”。现在您需要一个工具来分析深度。这里的数学模型将类似于“社交网络分析”。还有一些图形数据库,例如
"Neo4j"加号
“Gephi”
非常适合这类任务。最后,您将获得美丽而可观的结果。你也可以使用 R 中的一些包来做到这一点。
这实际上是一个非常有趣的问题,它涉及到一系列不同的编程能力。祝您项目顺利,Stackoverflow 将帮助您完成。
【解决方案2】:
听起来您想编写一个蜘蛛从第一个 url 进行广度优先搜索,直到找到指向第二个 url 的链接。
我建议你看一下 Scrapy 包;这样做很容易。