- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 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 是纽约时报的 wikidata 代码):
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
取消注释最后两行并没有什么区别。
有人知道这里的问题吗?为什么 pywikibot 在我搜索“纽约时报”时要求我登录,但在我使用代码时却不要求我登录?
最佳答案
维基数据中项目页面的标题是它们的“Q”id。因此
item = pywikibot.Page(site, 'New York Times')
创建一个不存在的页面:
>>> item.exists()
False
wikidata 站点的 item.get() 失败。你必须运行:
item = pywikibot.Page(site, 'Q9684')
获取 token 是为了编辑存储库中的内容,而不仅仅是检索,为此您需要登录。
关于python - 如何使用 pywikibot 登录 wikidata,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44623245/
对Wikidata的查询是否有限制(仅SPARQL查询,不能编辑)?我找不到与此有关的任何官方文档。我想知道每分钟/小时(和每个IP地址)对查询的限制程度如何。 最佳答案 是的,有限制。 当前,单个查
我已经使用说明创建了 wikidata api 的本地版本 here ,我想指定一个自定义超时来覆盖 official api 中的 60 秒超时。 。我在 RWStore.properties 中没
我在 opendata.stackexchange.com 上找到了以下代码片段, 它从维基数据中返回美国公民的姓名和描述: prefix wdt: prefix wd: PREFIX wikib
什么是维基数据 API 等价于 this page其中列出了所有已知的维基数据属性?我想搜索一个属性,例如“博士生导师”,拿回P184。 items 也有类似的功能,但我似乎找不到属性的等效项。 最佳
是否有一种方法可以根据实体名称获取Wikidata页面信息,例如,如果我想获取Google的页面数据。 我认为必须使用带有相应实体值的“实体”来完成,但是我不确定是否有任何简单的方法来确定实体值。 最
我请求有关维基数据实体的数据(API 操作 wbgetentities),并且我需要与实体的维基数据页面上的声明顺序相同。我探索了所有返回的 JSON,但没有找到对它们进行排序的属性。即使在原始 AP
我已经使用说明创建了 wikidata api 的本地版本 here ,并在使用默认选项运行 munge.sh 后,我运行了./runUpdate.sh -n wdq 导致出现以下错误消息。 ERRO
我可以获取某些属性的使用值列表吗?例如,我想获取 P166(已获奖)属性的所有已使用不同值的列表。 最佳答案 更新 :感谢 Wikidata 查询服务,这现在是一个微不足道的操作,您可以向其发送 SP
我正在尝试将项目分类为维基数据支持的主要类别:通用、人物、组织、事件、作品、术语、地点、其他。此处列出了这些类别: https://www.wikidata.org/wiki/Wikidata:Lis
我使用 KMDb 人员 ID 从 wikidata 数据库中检索信息。 结果是包含三个 IMDB 代码的三行。 如果我查看女 Actor wikidata 网页 (https://www.wikida
所以我有这个页面 ID 12517871:https://fr.wikipedia.org/wiki?curid=12517871 我想从这里的底部获取标识符 https://www.wikidata
我的问题是如何从 wikidata 最好通过 SPARQL 提取所有属性及其各自的标签,这些标签也在网页上呈现。 以 Google 为例维基数据上的条目。对于属性 P414(证券交易所)或 P159,
假设我想获得每个国家 (Q6256) 及其最近记录的人类发展指数 (P1081) 值的列表。该国家/地区的人类发展指数属性包含在不同时间点获取的数据点列表,但我只关心最新数据。此查询将不起作用,因为它
好的,我正在尝试从 Wikidata 中获取有关电影的信息,以这部电影为例:https://www.wikidata.org/wiki/Q24871 在页面上,数据以可读的格式清晰显示,但是当您尝试通
我有很多文本(数百万),字数从 100 到 4000 不等。这些文本被格式化为书面作品,带有标点符号和语法。一切都是英文的。 问题很简单:如何从给定文本中提取每个 WikiData 实体? 实体被定义
我想根据维基百科页面的 Freebase 获取类型。例如,对于 Jeb Bush 我应该得到, Politician, Organization leader, Organization founde
我正在制作一个 ReactJS 应用程序,以在人们搜索时显示有关其的信息。我正在尝试使用 MediaWiki 从维基百科获取有关某人的信息。我正在进行 API 调用,但响应非常奇怪。我在 API 响应
我是 SPARQL/Wikidata 的新手,正在尝试弄清楚如何询问安吉丽娜·朱莉 (Angelina Jolie) 开始与她的配偶约会的时间。 我在朱莉的维基数据条目中看到了信息,但我无法形成有效的
我知道以下 SPARQL 针对 Wikidata SPARQL Endpoint查询毫无意义。我的应用程序中会自动生成类似的查询。请忽略概念的合理性,让我们深入研究这个奇怪的(至少对我来说)发生的事情
我正在尝试使用 pywikibot 访问 wikidata 中的数据。我尝试使用数据对象的名称而不是代码来执行此操作。当我运行这个脚本时: import pywikibot site = pywiki
我是一名优秀的程序员,十分优秀!