2012-05-23 29 views
1

我想做一個python腳本,將其作爲輸入主要url,例如: https://stackoverflow.com/ 然後它遍歷所有頁面,並對該網站的所有頁面(節點)及其子頁面,當且僅當節點a(頁面a)中有鏈接到節點b(頁面b)時,才具有邊緣。我認爲有這樣的東西,但我沒有在谷歌找到...如果有任何想法,也許使用wget誰是我很想聽到的東西。如何在python中製作一個網站的圖形?

回答

2

我只給你指點,你需要什麼來建立這樣使用基本的Python的工具:

  • 首先,你需要urllib打開的URL。
  • 然後,您可以使用regexpsBeautifulSoup來查找您網頁中的鏈接。第一個是CPU不太昂貴,但不太精確,後者是一個模糊的HTML解析器(意思是它接受有缺陷的HTML)
  • 然後,您可以將您的URL存儲在url的list中以抓取,並且對於每個鏈接在一個頁面中查找,您需要檢查您是否已經爬過它(以避免無限循環),使用set
  • 要構建您的圖,對於您爬網的每個新頁,這是一個新節點。你發現的每一個環節都是一個新的優勢。

或者,您可以使用scrapy,這是一個用於抓取的python庫。

+2

很好的答案 - 如果填寫答案的最後一部分,繪製圖表可能會更完整。爲此,我會使用'networkx'或一個包裝到'graphviz'(例如'pydot'等)。 – Hooked

+0

目前還不清楚是繪製圖表,還是僅僅構建它。但是你的增加是絕對值得的。謝謝 ! – Scharron

相關問題