我正在制作一个Python网络爬虫程序来播放The Wiki game。
如果你不熟悉这个游戏:
我这样做的过程是:
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)
我意识到我通过抓取目标网页上的所有链接来获取目标的链接,但是wiki /链接是单向的:仅仅因为目标链接到页面并不意味着页面链接到目标。
如何获得链接到目标的文章列表?
答案 0 :(得分:7)
维基百科有一个内置工具,可以完成您所描述的内容WhatLinksHere/Backlink。
您可以在每个维基百科页面上看到此工具。
您只需抓取目标页面背面链接页面上的所有链接。
'http://en.wikipedia.org/w/index.php?title=Special%3AWhatLinksHere&limit='500'&target='+goal+'&namespace=0'
^^^^
Article you are trying to reach here