import pywikibot
from bs4 import BeautifulSoup
import urllib.request
import re
# Connect to enwiki
enwiki = pywikibot.Site('en', 'wikipedia')
# and then to wikidata
repo = enwiki.data_repository()
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()
try:
item_new = item_dict1['claims']['P735']
for item1_new in item_new:
QID1 = pywikibot.ItemPage(repo, item1_new)
name = QID1.get()
print(name)
except:
print('name')
'''
try:
item_new1 = item_dict1['claims']['P734']
for item1_new1 in item_new1:
QID2 = pywikibot.PropertyPage(repo, 'P734')
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_authorname(['Q56603073'])
name name name
item = pywikibot.PropertyPage(repo, 'P735')
item_dict = item.get()
print(item_dict['labels']['en'])
given name
def print_author_info(list_item):
site = pywikibot.Site("wikidata", "wikidata")
repo = site.data_repository()
q = []
for data_item in list_item:
item = pywikibot.ItemPage(repo, data_item)
item_dict = item.get()
for claim in item_dict['claims']: # Loop through items
if claim == 'P50':
for source in item.claims[claim]:
tt = list(source.qualifiers.items())
for key, value in tt:
if key == 'P1545':
no1 = value[0].getTarget()
q.append(no1)
return q
print_author_info(['Q56603077'])
def add_statedqualifier(list_item):
site = pywikibot.Site("wikidata", "wikidata")
repo = site.data_repository()
neu = print_author_info(['Q27450617'])
names = author_citation('https://ui.adsabs.harvard.edu/abs/2010ApJ...723.1736H/exportcitation')
claim_list = []
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
claim_list.append(claim)
teb = [names[int(i) - 1] for i in neu]
for u, p in zip(teb, claim_list):
if 'P1545' in p.qualifiers:
print(p)
else:
continue
add_statedqualifier(['Q56603082'])
--------------------------------------------------------------------------- NameError Traceback (most recent call last) Input In [172], in <cell line: 25>() 22 else: 23 continue ---> 25 add_statedqualifier(['Q56603082']) Input In [172], in add_statedqualifier(list_item) 3 site = pywikibot.Site("wikidata", "wikidata") 4 repo = site.data_repository() ----> 5 neu = print_author_info(['Q27450617']) 6 names = author_citation('https://ui.adsabs.harvard.edu/abs/2010ApJ...723.1736H/exportcitation') 8 claim_list = [] NameError: name 'print_author_info' is not defined
def print_authorstring_info(list_item):
site = pywikibot.Site("wikidata", "wikidata")
repo = site.data_repository()
o_list = []
for data_item in list_item:
item = pywikibot.ItemPage(repo, data_item)
item_dict = item.get()
for claim in item_dict['claims']: # Loop through items
if claim == 'P2093':
for source in item.claims[claim]:
stat = list(source.qualifiers.items())
print(claim)
for key, value in stat:
num = value[0].getTarget()
o_list.append(num)
#return o_list
print_authorstring_info(['Q27450617'])
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 claim in item_dict['claims']: # Loop through items
if claim == 'P50':
for source in item.claims[claim]:
QID = source.target.getID()
item1 = pywikibot.ItemPage(repo, QID)
item_dict1 = item1.get()
print(item_dict1)
print_authorname(['Q27450617'])
list_item = ['Q27450617']
for data_item in list_item:
item = pywikibot.ItemPage(repo, data_item)
item_dict = item.get()
for claim in item_dict['claims']['P50']:
author_prop_item_dict = claim.getTarget().get()
author_name2 = author_prop_item_dict['labels']['en']
print(author_name2)
Uroš Seljak Matias Zaldarriaga