【问题标题】:Get All Pages from a given Category from wikipedia从维基百科获取给定类别的所有页面
【发布时间】:2018-11-01 12:52:12
【问题描述】:

我正在使用Wikipedia-api 从给定类别的维基百科页面中提取所有文本。

如教程中所述-

def print_categorymembers(categorymembers, level=0, max_level=2):
    for c in categorymembers.values():
        print("%s: %s (ns: %d)" % ("*" * (level + 1), c.title, c.ns))
        if c.ns == wikipediaapi.Namespace.CATEGORY and level <= max_level:
            print_categorymembers(c.categorymembers, level + 1)


cat = wiki_wiki.page("Category:Physics")
print("Category members: Category:Physics")
print_categorymembers(cat.categorymembers  

但我无法构建逻辑,如何做,这段代码只是给了我所有的页面和一些嵌套到其他页面的页面。 怎么办?

【问题讨论】:

    标签: python-3.x web-scraping web-crawler wikipedia-api


    【解决方案1】:

    如果你想从页面中提取文本,你必须使用text property

    所以您的代码可能如下所示:

    cat = wiki_wiki.page("Category:Physics")
    print("Category members: Category:Physics")
    for p in cat.categorymembers.values():
      if p.namespace == wikipediaapi.Namespace.CATEGORY:
        # it is category, so you have to make decision
        # if you want to fetch also text from pages that belong
        # to this category
        print(p)
      elif p.namespace == wikipediaapi.Namespace.MAIN:
        # it is page => we can get text
        print(p)
        print(p.text)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多