如何列出从特定 IP 地址对维基百科所做的所有匿名(因此 IP 公开)编辑?

假设我有一个 IP 地址,例如 IP address of the Hungarian Parliament193.224.28.151

如何获取使用此 IP 地址所做的所有 Wikipeida 编辑的列表?

a Tom Scott webpage,我读到:

事实如下:维基百科存储匿名用户的 IP 地址。

这是另一个事实:来自 Houses of the Houses 的所有网络流量 议会通过两个代理服务器之一发送——这意味着 议会内部对维基百科的每一次匿名编辑都被归因于 到两个 IP 地址之一。

我相信你能看出这是怎么回事。

我还没有找到这个项目的存储库。如果它可以在浏览器中或使用 Python 完成,那就太好了。

starfoucs 回答:如何列出从特定 IP 地址对维基百科所做的所有匿名(因此 IP 公开)编辑?

您可以使用 Special:Contributions 页面查看来自维基百科帐户、IP 地址或 IP 范围的贡献。例如,https://en.wikipedia.org/wiki/Special:Contributions/193.224.28.151 列出了从 193.224.28.151 所做的编辑。您还可以查看 IP 范围内的编辑,例如 https://en.wikipedia.org/wiki/Special:Contributions/193.224.28.0/22

如果您希望通过 Wikipedia 的 API 查看来自 Wikipedia 帐户和个人 IP 地址的贡献,文档和示例可在 https://www.mediawiki.org/wiki/API:Usercontribs

,

使用 Pywikibot,您可以按如下方式使用 MediaWiki API:

import pywikibot
site = pywikibot('Wikipedia:en')
user = pyikibot.User(site,'193.224.28.2')

User 是派生自 pywikibot.Page 的类,它代表一个用户,并且有一种方法可以检索他的贡献。该方法是 contributions(),它是一个生成器并产生 pywikibot.Page(可用于获取更多信息的 Page 对象),revid (修订 ID)、pywikibot.Timestamp(从日期时间派生的对象)、评论(编辑摘要)。要获取您可以使用的最后 5 个编辑:

contribs = list(user.contributions(total=5))

这将检索以下条目:

(Page('History of Croatia'),282343057,Timestamp(2009,4,7,14,10,7),'')

要获取一定范围的ip,您可以使用相应的站点方法usercontibs(),但您必须自己上传内容:

list(site.usercontribs(userprefix='193.224.28.',total=5))

对于每个条目,您都会得到一个这样的字典:

{'comment': '','ns': 0,'pageid': 5574,'parentid': 281875336,'revid': 282343057,'timestamp': '2009-04-07T14:10:07Z','title': 'History of Croatia','user': '193.224.28.2','userid': 0}

Site.usercontribs() 方法还有其他参数,这些参数也可用于 Page.contributions()。它们可用于过滤结果,例如用于特定命名空间或仅检索页面的最顶部编辑。文档可以在 here 中找到。

本文链接:https://www.f2er.com/695677.html

大家都在问