微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何使用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 举报,一经查实,本站将立刻删除。