2
我正在製作一個Python網絡爬蟲程序來播放The Wiki game。獲取維基百科頁面上的所有鏈接
如果你不熟悉這個遊戲:
- 開始從維基百科 一些文章
- 選擇一個目標文章
- 嘗試只通過點擊維基去從一開始就文章的目的文章/鏈接
我的過程中這樣做是:
- 以啓動文章和目標的文章作爲輸入
- 獲取鏈接到目標物品
- 瓶坯的鏈接breadth-first search發現避免已經訪問過的網頁從一開始的文章 開始的文章列表
- 檢查目標文章是否在當前頁面上:如果是,則返回
path_crawler_took+goal_article
- 檢查是否有任何鏈接到目標的文章位於當前頁面上。如果其中之一是,返回
path_crawler_took+intermediate_article+goal
我有一個問題,程序將返回一個路徑,但路徑不會真正鏈接到目標。
def get_all_links(source):
source = source[:source.find('Edit section: References')]
source = source[:source.find('id="See_also"')]
links=findall('\/wiki\/[^\(?:/|"|\#)]+',source)
return list(set(['http://en.wikipedia.org'+link for link in links if is_good(link) and link]))
links_to_goal = get_all_links(goal)
我意識到,我被刮的所有環節的斷目標頁面的獲取鏈接的目標,但維基/鏈接是單向的:只是因爲我們的目標鏈接指向的網頁並不意味着頁面鏈接到目標。
如何獲得鏈接到目標的文章列表?
退房維基百科的反向鏈接工具http://en.wikipedia.org/wiki/Special:WhatLinksHere/Backlink –