import pywikibot
from bs4 import BeautifulSoup
import urllib.request
import re
# Connect to enwiki
enwiki = pywikibot.Site('en', 'wikipedia')
# and then to wikidata
enwiki_repo = enwiki.data_repository()
def print_demoauthorname(list_item):
site = pywikibot.Site("wikidata", "wikidata")
repo = site.data_repository()
i_list = []
for data_item in list_item:
item = pywikibot.ItemPage(repo, data_item)
#item_dict = item.get()
for source in item.claims['P50']:
tt = list(source.qualifiers.items())
for key, value in tt:
if key == 'P1545':
QID = source.target.getID()
item1 = pywikibot.ItemPage(repo, QID)
item_dict1 = item1.get()
try:
item_new = item_dict1['claims']['P735']
for item1_new in item_new:
itemm = item1_new.target.getID()
QID1 = pywikibot.ItemPage(repo, itemm)
name = QID1.get()
try:
item_new1 = item_dict1['claims']['P734']
for item1_new1 in item_new1:
itemm1 = item1_new1.target.getID()
QID2 = pywikibot.ItemPage(repo, itemm1)
name1 = QID2.get()
m_list = name['labels']['en'] + ', ' + name1['labels']['en']
i_list.append(m_list)
except:
print('No Family name')
except:
print('No Given name')
return i_list
print_demoauthorname(['Q56603075'])
['Keith, Vanderlinde', 'P., Ade', 'Peter, Ade']
#This function ensures the claim without a series ordinal is not included
def print_claim1(list_item):
site = pywikibot.Site("wikidata", "wikidata")
repo = site.data_repository()
state = []
for data_item in list_item:
item = pywikibot.ItemPage(repo, data_item)
item_dict = item.get()
for claim in item_dict['claims']['P50']: # Loop through items
nu = claim.qualifiers.items()
for t, y in nu:
if t == 'P1545':
state.append(claim)
return state
print_claim1(['Q56603075'])
[Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P50', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 104918685}, 'type': 'wikibase-entityid'}}, 'type': 'statement', 'id': 'Q56603075$344F9367-2374-4385-BE93-577EC415EAD9', 'rank': 'normal', 'qualifiers': {'P1545': [{'snaktype': 'value', 'property': 'P1545', 'datatype': 'string', 'datavalue': {'value': '41', 'type': 'string'}, 'hash': 'b4281260d750497fff3ee3f3a7ab594ce99643d4'}], 'P1932': [{'snaktype': 'value', 'property': 'P1932', 'datatype': 'string', 'datavalue': {'value': 'K. Vanderlinde', 'type': 'string'}, 'hash': '2e2e4bbec6f4d51fb6cee0930cb4a5c958885454'}], 'P9688': [{'snaktype': 'value', 'property': 'P9688', 'datatype': 'string', 'datavalue': {'value': 'Vanderlinde', 'type': 'string'}, 'hash': '72f4a7b0c3dcc5d06cbcfab49d533e4dc43c9e2f'}], 'P9687': [{'snaktype': 'value', 'property': 'P9687', 'datatype': 'string', 'datavalue': {'value': 'K.', 'type': 'string'}, 'hash': 'eb3c6aff6ac828f67147786632e4b29904c1fc24'}]}, 'qualifiers-order': ['P1545', 'P1932', 'P9688', 'P9687']}), Claim.fromJSON(DataSite("wikidata", "wikidata"), {'mainsnak': {'snaktype': 'value', 'property': 'P50', 'datatype': 'wikibase-item', 'datavalue': {'value': {'entity-type': 'item', 'numeric-id': 53986456}, 'type': 'wikibase-entityid'}}, 'type': 'statement', 'id': 'Q56603075$0B9DA8AA-303B-40A8-BB83-AB1DD0028CE3', 'rank': 'normal', 'qualifiers': {'P1545': [{'snaktype': 'value', 'property': 'P1545', 'datatype': 'string', 'datavalue': {'value': '2', 'type': 'string'}, 'hash': '7241753c62a310cf84895620ea82250dcea65835'}], 'P1932': [{'snaktype': 'value', 'property': 'P1932', 'datatype': 'string', 'datavalue': {'value': 'P. A. R. Ade', 'type': 'string'}, 'hash': '459a8aab0bd3db5ac66145819f8f9a35a99c6785'}], 'P9688': [{'snaktype': 'value', 'property': 'P9688', 'datatype': 'string', 'datavalue': {'value': 'Ade', 'type': 'string'}, 'hash': '7a0bae8dc90b5033a59b81127668b2939344652a'}], 'P9687': [{'snaktype': 'value', 'property': 'P9687', 'datatype': 'string', 'datavalue': {'value': 'P. A. R.', 'type': 'string'}, 'hash': '0ab4889b886fe80f6f1c5435fe105643461ae950'}]}, 'qualifiers-order': ['P1545', 'P1932', 'P9688', 'P9687']})]
def print_authorname(list_item):
site = pywikibot.Site("wikidata", "wikidata")
repo = site.data_repository()
i_list = []
for data_item in list_item:
item = pywikibot.ItemPage(repo, data_item)
#item_dict = item.get()
for source in item.claims['P50']:
tt = list(source.qualifiers.items())
for key, value in tt:
if key == 'P1545':
QID = source.target.getID()
item1 = pywikibot.ItemPage(repo, QID)
item_dict1 = item1.get()
#te = item_dict1['claims']['P735']
#print(te)
#print(QID)
print('\n')
if 'P735' in item_dict1['claims']:
item_new = item_dict1['claims']['P735']
for item1_new in item_new:
itemm = item1_new.target.getID()
#add a for loop
QID1 = pywikibot.ItemPage(repo, itemm)
name = QID1.get()
print(item_new[0].target.getID())
#print(itemm)
#print(name['labels']['en'])
try:
item_new1 = item_dict1['claims']['P734']
for item1_new1 in item_new1:
itemm1 = item1_new1.target.getID()
QID2 = pywikibot.ItemPage(repo, itemm1)
name1 = QID2.get()
#print(name1['labels']['en'])
#print('------------')
except:
print('No Family name')
else:
print('No Given name')
else:
continue
return i_list
print_authorname(['Q56942987'])
Q14516546 Q1159033 Q1084472 Q1084472 Q18218586
[]