问题描述
我尝试使用 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 (将#修改为@)