私はpywikibotを使ってwikidataからデータにアクセスしようとしています。私はコードではなく、データオブジェクトの名前でこれをしようとしています。 私はこのスクリプトを実行すると:pywikibotでwikidataにログインするには
import pywikibot
site = pywikibot.Site("wikidata", "wikidata")
repo = site.data_repository()
token = repo.token(pywikibot.Page(repo, 'Main Page'), 'edit')
を私は、このエラーメッセージが表示されます:
Traceback (most recent call last):
File "/Users/this-user/PycharmProjects/teststuff/src/pywikibot_stuff/wikipedia/test.py", line 6, in <module>
token = repo.token(pywikibot.Page(repo, 'Main Page'), 'edit')
File "/Users/this-user/Library/Python/3.6/lib/python/site-packages/pywikibot/tools/__init__.py", line 1337, in wrapper
return obj(*args, **kwargs)
File "/Users/this-user/Library/Python/3.6/lib/python/site-packages/pywikibot/site.py", line 3495, in token
<class 'AssertionError'>
return self.tokens[tokentype]
File "/Users/this-user/Library/Python/3.6/lib/python/site-packages/pywikibot/site.py", line 1785, in __getitem__
assert self.site.user(), 'User must login in this site'
AssertionError: User must login in this site
CRITICAL: Closing network session.
私は次のスクリプトを実行したとき(Q9684がためにウィキデータコードであるため、しかし、これは、私に混乱してニューヨーク・タイムズ紙):
import pywikibot
site = pywikibot.Site('wikidata', 'wikidata')
repo = site.data_repository()
item = pywikibot.ItemPage(repo, 'Q9684')
item_dict = item.get()
aliases = item_dict['aliases']
aliases = [aliases[key] for key in aliases]
aliases = [alias for sublist in aliases for alias in sublist]
print(aliases
すべてが正常に動作し、私が手:
['NY Times', 'New York Times', 'The Gray Lady', 'Gray Lady', 'NYT', 'TNYT', 'nytimes.com', 'New-York Daily Times', 'The New-York Times', 'NY Times', 'NY Times', 'New York Times', 'New York Times', 'NYT', 'NY Times', 'NY Times', 'New York Times', 'The Gray Lady', 'Gray Lady', 'The Grey Lady', 'Grey Lady', 'New York Times', 'NYT', '紐約時報', 'nytimes.com', 'New York Times', 'The New York Daily Times', 'NY Times', 'New York Times', 'NYT', 'The Gray Lady', 'The New York Times', 'Нью-Йорк Таймс', 'NY Times', 'New York Times', 'NYT', 'نيو يورك تايمز']
私はまた、ランニング試してみました:
import pywikibot
site = pywikibot.Site('wikidata', 'wikidata')
repo = site.data_repository()
item = pywikibot.Page(site, 'New York Times')
item_dict = item.get()
print(item_dict)
しかし、私はエラーを取得する:
pywikibot.exceptions.NoPage: Page [[wikidata:New York Times]] doesn't exist.
私user-config.pyファイルが同じディレクトリにあり、次のようになります。
family = 'wikidata'
mylang = 'en'
usernames['wikidata']['wikidata'] = u'ExampleBot'
#console_encoding = 'utf-8'
#use_api_login = True
最後の2行のコメントを外しても違いはありません。
ここで問題を知っている人はいますか? Pywikibotがなぜ「ニューヨークタイムズ」を検索するときにログインするのを望んでいるのですか?