Shizhao created this task.
Shizhao added a project: Pywikibot.
Restricted Application added subscribers: pywikibot-bugs-list, Aklapper.
TASK DESCRIPTION
source code:
import pywikibot
site = pywikibot.Site('wikipedia:zh')
#Get wikidata page data
#Q_title: wikidata Q_ID
def GetItemdata(site,Q_title):
repo = site.data_repository() # this is a DataSite object
item_data = pywikibot.ItemPage(repo, Q_title) # This will be
functionally the same as the other item we defined
item_data.get() # you need to call it to access any data.
#print(item.iterlinks())
#for l in item.iterlinks():
# print(l.title())
return item_data
ITNpagedata = GetItemdata(site,'Q4026244')
for i in ITNpagedata.iterlinks():
print(i)
Input:
<generator object ItemPage.iterlinks at 0x7f27af2955b0>
[[wikipedia:ace:Seunaleuëk:Accueil actualité]]
[[wikipedia:af:Sjabloon:Aktueel]]
[[wikipedia:ak:Template:In the news]]
......
[[wikipedia:yo:Èbúté:Àwọn ìṣẹ̀lẹ̀ ìwòyí/Kókó orí]]
---------------------------------------------------------------------------
UnknownSiteError Traceback (most recent call last)
Cell In[15], line 2
1 print(ITNpagedata.iterlinks())
----> 2 for i in ITNpagedata.iterlinks():
3 print(i)
File
/srv/paws/lib/python3.10/site-packages/pywikibot/page/_wikibase.py:1065, in
ItemPage.iterlinks(self, family)
1063 if family is not None and not isinstance(family, Family):
1064 family = Family.load(family)
-> 1065 for sl in self.sitelinks.values():
1066 if family is None or family == sl.site.family:
1067 pg = pywikibot.Page(sl)
File /usr/lib/python3.10/_collections_abc.py:930, in
ValuesView.__iter__(self)
928 def __iter__(self):
929 for key in self._mapping:
--> 930 yield self._mapping[key]
File
/srv/paws/lib/python3.10/site-packages/pywikibot/page/_collections.py:368, in
SiteLinkCollection.__getitem__(self, key)
366 val = pywikibot.page.SiteLink(val, key)
367 elif isinstance(val, dict):
--> 368 val = pywikibot.page.SiteLink.fromJSON(val, self.repo)
369 else:
370 return val
File /srv/paws/lib/python3.10/site-packages/pywikibot/page/_links.py:745,
in SiteLink.fromJSON(cls, data, site)
734 @classmethod
735 def fromJSON(cls, data: dict, site=None): # noqa: N802
736 """
737 Create a SiteLink object from JSON returned in the API call.
738
(...)
743 :rtype: pywikibot.page.SiteLink
744 """
--> 745 sl = cls(data['title'], data['site'])
746 repo = site or sl.site.data_repository()
747 for badge in data.get('badges', []):
File /srv/paws/lib/python3.10/site-packages/pywikibot/page/_links.py:690,
in SiteLink.__init__(self, title, site, badges)
688 self._rawtitle = title
689 if ':' in title:
--> 690 site, namespace, title = SiteLink._parse_namespace(title, site)
692 super().__init__(title, namespace, site)
694 badges = badges or []
File /srv/paws/lib/python3.10/site-packages/pywikibot/page/_links.py:714,
in SiteLink._parse_namespace(title, site)
712 site = site or pywikibot.Site()
713 if not isinstance(site, pywikibot.site.BaseSite):
--> 714 site = pywikibot.site.APISite.fromDBName(site)
716 prefix = title[:title.index(':')].lower() # part of text before :
717 ns = site.namespaces.lookup_name(prefix)
File /srv/paws/lib/python3.10/site-packages/pywikibot/site/_apisite.py:215,
in APISite.fromDBName(cls, dbname, site)
213 if m_site['code'] == 'wiki':
214 m_site['code'] = 'wikipedia'
--> 215 return pywikibot.Site(lang, m_site['code'])
216 else: # key == 'specials'
217 for m_site in val:
File /srv/paws/lib/python3.10/site-packages/pywikibot/__init__.py:253, in
Site(code, fam, user, interface, url)
251 key = f'{interface.__name__}:{fam}:{code}:{user}'
252 if key not in _sites or not isinstance(_sites[key], interface):
--> 253 _sites[key] = interface(code=code, fam=fam, user=user)
254 debug(f"Instantiated {interface.__name__} object
'{_sites[key]}'")
256 if _sites[key].code != code:
File /srv/paws/lib/python3.10/site-packages/pywikibot/site/_apisite.py:118,
in APISite.__init__(self, code, fam, user)
111 def __init__(
112 self,
113 code: str,
114 fam: Union[str, 'pywikibot.family.Family', None] = None,
115 user: Optional[str] = None
116 ) -> None:
117 """Initializer."""
--> 118 super().__init__(code, fam, user)
119 self._globaluserinfo: Dict[Union[int, str], Any] = {}
120 self._interwikimap = _InterwikiMap(self)
File /srv/paws/lib/python3.10/site-packages/pywikibot/site/_basesite.py:89,
in BaseSite.__init__(self, code, fam, user)
86 else:
87 error_msg = ("Language '{}' does not exist in family {}"
88 .format(self.__code, self.__family.name))
---> 89 raise UnknownSiteError(error_msg)
91 self._username = normalize_username(user)
93 self.use_hard_category_redirects = (
94 self.code in self.family.use_hard_category_redirects)
UnknownSiteError: Language 'lzh' does not exist in family wikipedia
TASK DETAIL
https://phabricator.wikimedia.org/T346888
EMAIL PREFERENCES
https://phabricator.wikimedia.org/settings/panel/emailpreferences/
To: Shizhao
Cc: Aklapper, Shizhao, pywikibot-bugs-list, PotsdamLamb, Jyoo1011,
JohnsonLee01, SHEKH, Dijkstra, Khutuck, Zkhalido, Viztor, Wenyi, Tbscho, MayS,
Mdupont, JJMC89, Dvorapa, Altostratus, Avicennasis, mys_721tx, Xqt, jayvdb,
Masti, Alchimista
_______________________________________________
pywikibot-bugs mailing list -- [email protected]
To unsubscribe send an email to [email protected]