如何使用python从维基百科的信息框中检索产品和服务列表

问题描述

我尝试使用 python(而不是抓取维基页面的 html)从维基数据中提取世界上所有上市公司的产品和/或服务列表。我使用了这个代码

import json
import wptools
import wikipedia
import pandas as pd

# see https://monashdatafluency.github.io/python-web-scraping/section-3-API-based-scraping/
# and https://github.com/dahlia/wikidata

print('wptools version : {}'.format(wptools.__version__)) # checking the installed version

mycompany = "BP"

wiki_search = [{mycompany : wikipedia.search(mycompany)}]

for idx,company in enumerate(wiki_search):
    for i,j in company.items():
        print('{}. {} :\n{}'.format(idx+1,i,','.join(j)))
        print('\n')

most_probable = [(mycompany,wiki_search[0][mycompany][0])]
companies = [x[1] for x in most_probable]

print(most_probable)

page = wptools.page(mycompany)
page.get_parse() 
page.data.keys()

print("Is Products in data_keys? ",'products' in page.data['infoBox'].keys() )
print("Is Services in data_keys? ",'services' in page.data['infoBox'].keys() )
print("Is homepage in data_keys? ",'homepage' in page.data['infoBox'].keys() )

print("_______________________________________________")

print(page.data['infoBox']['products'])

print("_______________________________________________")

print(page.data['infoBox']['services'])

print("_______________________________________________")

print(page.data['infoBox']['homepage'])

然而,当我尝试做数千家公司时,我得到了非常脏的输出,而不是一个干净的逗号分隔的字符串列表......例如

{{hlist|[[石油]]|[[天然气]]|[[汽车燃料]]s|[[航空燃料]]s}}

而且情况变得更糟。输出的格式有很多种,hlists/Flatlist/Unbulleted list /etc。

你有什么推荐?什么python工具?使用 wikidata 或 dbpedia 或其他什么?

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)