假设我有一个IP地址,例如匈牙利议会的IP地址:193.224.28.151
如何获得使用此IP地址进行的所有Wikipeida编辑的列表?
在汤姆·斯科特的网页上,我读到:
事实是:维基百科存储匿名用户的IP地址。 另一个事实是:来自议会大厦的所有网络流量都是通过两个代理服务器之一发送的--这意味着议会内部对维基百科的每一次匿名编辑都归因于两个IP地址中的一个。 我相信你能看出这是怎么回事。
我还没有找到这个项目的存储库。如果可以在浏览器内或使用Python来完成,那就太好了。
发布于 2021-03-30 19:52:37
您可以使用“特殊:贡献”页面查看维基百科帐户、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。
如果您希望通过维基百科的API查看维基百科帐户和个人IP地址的贡献,可以在https://www.mediawiki.org/wiki/API:Usercontribs查阅文档和示例。
发布于 2021-04-01 09:51:54
使用Pywikibot,您可以使用MediaWiki API,如下所示:
import pywikibot
site = pywikibot('Wikipedia:en')
user = pyikibot.User(site, '193.224.28.2')User是从pywikibot.Page派生的类,它表示用户,并且有一个检索他的contibutions的方法。该方法是contributions(),它是一个生成器,它生成pywikibot.Page (一个可用于进一步信息的页面对象)、revid (修订id)、pywikibot.Timestamp (从日期时间派生的对象)、注释(编辑摘要)。要获得您可能使用的最后5个编辑:
contribs = list(user.contributions(total=5))它检索的条目如下:
(Page('History of Croatia'), 282343057, Timestamp(2009, 4, 7, 14, 10, 7), '')要获得一个范围的ips,您可以使用相应的站点方法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()是可用的。它们可以用于过滤结果,例如,对于特定的命名空间,或者只检索页面的最顶层编辑。文档可以找到这里。
https://stackoverflow.com/questions/66796872
复制相似问题