In [1]:
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()
In [21]:
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
In [3]:
item = pywikibot.PropertyPage(repo, 'P735') 
item_dict = item.get()
print(item_dict['labels']['en'])
given name
In [172]:
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'])
In [172]:
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
In [169]:
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'])
In [ ]:
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'])
In [180]:
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
In [ ]: