我在Python中使用BeautifulSoup4編寫了一個程序,該程序從隨機維基百科文章開始,僅抓取段落部分中的前兩個鏈接。我想創建一棵樹,在那裏獲取隨機文章的前兩個鏈接,然後轉到這兩個鏈接並抓取這些頁面上的前兩個鏈接,依此類推。自然地,使用遞歸是有意義的,但我被卡住了。Python中的遞歸網站樹
這裏是我的抽象代碼:
def tree(link):
branch = get_links(link) # Function returns the first two links on the article in a list of strings
return tree(branch[0]), tree(branch[1])
origin = get_random_article() # Returns a link to a random Wikipedia article as a string
links = tree(origin)
此代碼創建一個無限循環,很顯然,我需要某種形式的迭代過程,或循環,以限制它。
這裏是我的堅持是什麼:
- 我需要某種限制的,以有多少分支創建,所以也沒有無限循環
- 的一種方式返回所有的鏈接它發現一旦它創建了指定數量的分支
我將輸出一個文件或某事的數據,但現在,任何關於如何創建這棵樹的幫助非常感謝。
謝謝你在前進,
盧卡斯
你可以保持全局計數器或傳遞一個額外的參數的極限 –
不知道的方法,爲什麼你使用beautifulsoup獨自做到這一點。 https://docs.scrapy.org/en/latest/faq.html –