首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从一些文章中获取完整的维基百科修订历史列表?

要从一些文章中获取完整的维基百科修订历史列表,你需要使用维基百科提供的API来获取特定页面的修订历史。以下是获取维基百科修订历史的基本步骤和相关概念:

基础概念

  1. 维基媒体API:维基百科使用维基媒体API来提供数据访问服务,包括页面内容、修订历史等。
  2. 修订历史:每个维基百科页面都有一个修订历史,记录了页面自创建以来的所有编辑。

相关优势

  • 自动化:可以自动化获取修订历史,无需手动检查每个版本。
  • 数据分析:获取的修订历史可以用于分析页面编辑趋势、编辑者行为等。

类型

  • 完整修订历史:包含页面的所有编辑记录。
  • 部分修订历史:可以指定时间范围或编辑次数来获取部分修订历史。

应用场景

  • 学术研究:研究维基百科页面的编辑模式和内容变化。
  • 数据分析:分析特定主题的编辑趋势和社区参与度。
  • 内容审核:监控页面内容的变化,进行内容审核。

获取修订历史的步骤

  1. 确定页面标题:首先需要知道你要获取修订历史的维基百科页面标题。
  2. 构造API请求:使用维基媒体API的revisions动作来构造请求URL。
  3. 发送请求:通过HTTP GET请求发送到API端点。
  4. 解析响应:解析API返回的JSON数据,提取修订历史信息。

示例代码

以下是一个使用Python获取维基百科页面修订历史的示例代码:

代码语言:txt
复制
import requests

def get_wikipedia_revision_history(page_title):
    base_url = "https://en.wikipedia.org/w/api.php"
    params = {
        "action": "query",
        "format": "json",
        "prop": "revisions",
        "titles": page_title,
        "rvprop": "timestamp|user",
        "rvlimit": 500,  # 最大允许的修订数量
        "rvdir": "newer"  # 获取最新的修订
    }
    
    response = requests.get(base_url, params=params)
    data = response.json()
    
    revisions = []
    for page_id, page_info in data["query"]["pages"].items():
        if "revisions" in page_info:
            for rev in page_info["revisions"]:
                revisions.append({
                    "timestamp": rev["timestamp"],
                    "user": rev["user"]
                })
    
    return revisions

# 示例使用
page_title = "Python (programming language)"
revision_history = get_wikipedia_revision_history(page_title)
for rev in revision_history:
    print(f"Timestamp: {rev['timestamp']}, User: {rev['user']}")

参考链接

可能遇到的问题及解决方法

  1. API限制:维基媒体API有请求频率限制,如果超过限制,可以尝试使用rvcontinue参数进行分页请求。
  2. 页面不存在:如果请求的页面不存在,API会返回错误信息,需要检查页面标题是否正确。
  3. 数据解析错误:确保正确解析API返回的JSON数据,特别是处理嵌套结构时。

通过以上步骤和代码示例,你可以获取并处理维基百科页面的修订历史。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何在 WordPress 中获取最新被评论的文章列表

我之前的「WordPress 文章查询教程6:如何使用排序相关的参数」中详细介绍了文章查询的排序参数,其中介绍可以通过评论数进行排序: $query = new WP_Query( array(...'orderby' => 'comment_count' ) ); 但是需求总是不停的变化,现在又有了新需求,获取最新被评论的文章列表,意思就是某篇文章刚被评论,它就排到最前面,在某些社交需求的网站可能需要用到...clauses['orderby'] = "cid {$order}"; } return $clauses; }, 10, 2); 上面的代码简单解释一下,就是通过 posts_clauses 接口实现文章表和评论表连表...,然后通过评论时间进行排序获取最新被评论的文章列表。...当然你也可以不需要了解和使用上面的代码,因为 WPJAM Basic 已经整合,你只需要知道最后可以通过下面简单的方式就能够获取最新被评论的文章列表: $query = new WP_Query( array

1.5K30

维基百科中的数据科学:手把手教你用Python读懂全球最大百科全书

维基百科不仅是你写大学论文时最好的信息渠道,也是一个极其丰富的数据源。 从自然语言处理到监督式机器学习,维基百科助力了无数的数据科学项目。...考虑好下载什么 上述代码把dump里的所有文件都找出来了,你也就有了一些下载的选择:文章当前版本,文章页以及当前讨论列表,或者是文章所有历史修改版本和讨论列表。...文章由标签区分,如果Content Handler遇到一个代表结束的 标签,它将添加self._values 到文章列表(self._pages)中。...例如,以下代码从文章创建了一个wikicode对象,并检索文章中的 wikilinks()。...要查找你感兴趣的文章类别的信息框模板,请参阅信息框列表。 如何将用于解析文章的mwparserfromhell 与我们编写的SAX解析器结合起来?

1.6K30
  • 用 @Audited 注解增强 Spring Boot 应用,打造健壮的数据审计功能

    为了确保数据的完整性,企业和开发人员需要一种高效的方式记录数据的变更历史,以便在需要时回溯或审查。...YourEntity.class: 想要检索审计历史的实体类。entityId: 想要获取修订记录的实体的特定ID。...List: 结果是一个审计实体列表(YourEntity_AUD),列表中的每一项代表该实体的一个修订版本。...从依赖的引入、实体类的配置,到如何通过Spring Data JPA及Hibernate Envers获取审计数据,每一个步骤都展示了这个工具的灵活性和强大功能。...因此,这行代码实际上是在查询具有给定ID的实体的所有修订历史,并将结果存储在审计实体的列表中。然后,可以使用该列表来分析或显示不同修订版本对实体所做的更改。

    20310

    用Pandas从HTML网页中读取数据

    首先,一个简单的示例,我们将用Pandas从字符串中读入HTML;然后,我们将用一些示例,说明如何从Wikipedia的页面中读取数据。...函数的完整使用方法,下面演示示例: 示例1 第一个示例,演示如何使用Pandas的read_html函数,我们要从一个字符串中的HTML表格读取数据。...Pandas的DataFrame对象,而是一个Python列表对象,可以使用tupe()函数检验一下: type(df) 示例2 在第二个示例中,我们要从维基百科中抓取数据。...= df.columns.get_level_values(1) 最后,如你所见,在“Date”那一列,我们用read_html从维基百科网页的表格中获得数据之后,还有一些说明,接下来使用str.replace...HTML中读取数据并转化为DataFrame类型 本文中,学习了用Pandas的read_html函数从HTML中读取数据的方法,并且,我们利用维基百科中的数据创建了一个含有时间序列的图像。

    9.6K20

    每天上千条文本过时,累死志愿者的维基百科被MIT最新AI接手啦!

    由于事实发生变更,每天有千上万的文章需要及时更新。编辑工作涉及文章扩展、重大改写,或诸如更新数据、日期、人名和地点等例行修订。现在,这项任务由世界各地的志愿者维护着。...论文合著者之一的Darsh Shah,一位来自计算机科学与人工智能实验室(CSAIL)的博士生表示,“维基百科的文章一直都有大量的更新工作,如果能减少或没有人工干预的情况下,实现自动、准确地修订文章,那会非常有价值...不再需要耗费大量人力来修订维基百科的文章,只需几个人便即可搞定,因为模型可以自动完成,这是巨大的提升。 事实上,已经有许多其他的机器人能自动编辑维基百科。...“中立屏蔽” 依托一系列的文本生成技术,系统得以识别句子的矛盾信息,并将两个独立的句子融合在一起。将维基百科文章中“过时”句子和“声明”句子作为输入,声明句子包含了更新和冲突信息。...研究者在维基百科项目中使用了同样的删除和融合技术来平衡数据集中的“不同意-同意”对,以缓解偏差。对一些“不同意”句子对,他们使用修正语句中的错误信息来为句子重新生成一个假的“证据”。

    45210

    斯坦福AI科研神器开源,一键成文GPT-4o mini加持!科研写作彻底解放双手

    我们也可以在给出的文章上面点击「See BrainSTORMing Process」来获取如下图所示中,不同LLM Role的头脑风暴过程。...在「发现」栏中,还可以参考当前其他学者生成的一些文章,以及聊天的示例。 另外,个人生成的文章和聊天记录,都可以在侧边栏My Library中找到。...全文生成: - 基于大纲逐节生成文章,利用检索到的信息增加内容可信度和引用 从给定的主题入手,STORM系统通过查阅相关的维基百科文章(步骤1-2)来确定涵盖该主题的各种视角。...但不可否认的是,STORM生成文章的质量在中立性和可验证性方面仍然落后于经过精心修订的人工撰写文章。...论文链接:https://www.arxiv.org/abs/2408.15232 在学习工作中,使用搜索引擎面临着需要阅览过多的冗余信息,而和Chatbots问答聊天,则又不知道如何进行准确的提问。

    6700

    彻底搞懂 etcd 系列文章(九):etcd compact 和 watch API

    《彻底搞懂 etcd 系列文章》将会从 etcd 的基本功能实践、API 接口、实现原理、源码分析,以及实现中的踩坑经验等几方面具体展开介绍 etcd。...预计会有 20 篇左右的文章,笔者将会每周持续更新,欢迎关注。 1 Compact方法 Compact 方法压缩 etcd 键值对存储中的事件历史。...原子,保证事件清单包含完整的修订版;同一修订版中通过多个键进行的更新不会拆分为多个事件列表。 Watch service 定义 在 rpc.proto 中 Watch service 定义如下: ?...整个事件历史可以从最后压缩修订版本开始观察。WatchService 只有一个 Watch 方法。...客户端应该记录 watch_id 并期待从同样的流中为创建的观察者接收事件。

    2.2K10

    维基百科背后,有场旷日持久的机器人编辑之战,开发者都不曾料到

    这一发现不仅影响着维基百科页面的质量,也对人工智能的发展有深远影响,特别是在网络上一些简单的自动代理。 目前,英文版维基百科有41,517,866个页面。...同一时期内,在英语版维基百科上每个机器人对其他机器人的工作进行了105次修订,这是人类编辑类似行为的三倍。在德语版上,机器人之间是最和谐的,在过去十年里平均只有24次冲突。...但是维基百科机器人通常在初始修订之后一个月再进行第一次修订。这些编辑冲突不是灾难性的,但考虑到其内容不断在变化,它可能会误导阅读网站的用户。...机器人比人类反应更慢,是因为它们通过“抓取”网络文章来进行修改,而不是接收系统警报。而且,在规定的时间内其允许修改的文章数量通常受到了限制。...但是机器人之间能够一直有冲突产生的问题表明,人类程序员不能完全捕捉潜在的编辑问题。 重要的是,当2013年初,当维基百科对网站上语言间转化的工作方式进行一些优化时,机器人之间的冲突大大减少了。

    857110

    「Python爬虫系列讲解」九、用 Selenium 爬取在线百科知识

    本专栏不光是自己的一个学习分享,也希望能给您普及一些关于爬虫的相关知识以及提供一些微不足道的爬虫思路。...爬取维基百科 2.1 网页分析 2.1.1 从页面中获取相关词条的超链接 2.1.2 调用 Selenium 定位并爬取各相关词条的消息盒 2.2 完整代码实现 3 用 Selenium 爬取百度百科...百度百科中实体“云冈石窟”的页面信息如上图所示。 1.3 头条百科 ? 头条百科是今日头条旗下的中文网络百科全书。在头条百科上,用户可以创建、编辑、修订词条,免费获取高质量的信息与知识服务。...头条百科中实体“Python”的页面信息如上图所示。 2 用 Selenium 爬取维基百科 2.1 网页分析 本节将详细讲解如何利用 Selenium 爬取云冈石窟的第一段摘要信息。...2.1.1 从页面中获取相关词条的超链接 ?

    2.7K20

    Python在Finance上的应用5 :自动获取是S&P 500的成分股

    欢迎来到Python for Finance教程系列的第5讲。 在本教程和接下来的几篇文章中,我们将着手研究如何为更多公司提供大量的定价信息,以及我们如何一次处理所有这些数据。...我可以给你一个清单,但实际上获得股票清单可能只是你可能遇到的众多挑战之一。 在我们的案例中,我们需要一个标普500公司的Python列表。...在我们的例子中,我们将从维基百科获取列表http://en.wikipedia.org/wiki/List_of_S%26P_500_companies. 维基百科中的代号/符号被组织在table。...,我们将使用 请求从Wikipedia的页面获取源代码。...我知道指定此表的唯一原因是因为我首先在浏览器中查看了源代码。 可能会有一段时间,你想解析一个不同的网站的股票列表,也许它是在一个table,或者它可能是一个list,也可能是一些div tags。

    2.3K10

    彻底搞懂 etcd 系列文章(七):etcd gRPC 服务 API

    《彻底搞懂 etcd 系列文章》将会从 etcd 的基本功能实践、API 接口、实现原理、源码分析,以及实现中的踩坑经验等几方面具体展开介绍 etcd。...各个函数的介绍如下: Range,从键值存储中获取范围内的 key; Put,设置给定 key 到键值存储,put 请求增加键值存储的修订版本并在事件历史中生成一个事件; DeleteRange,从键值存储中删除给定范围...,删除请求增加键值存储的修订版本并在事件历史中为每个被删除的key生成一个删除事件; Txn,在单个事务中处理多个请求,一个 txn 请求增加键值存储的修订版本并为每个完成的请求生成带有相同修订版本的事件...3.2 Range方法 Range 方法从键值存储中获取范围内的 key,定义如下: rpc Range(RangeRequest) returns (RangeResponse) {} 需要注意的是没有操作单个...3.4 DeleteRange 方法 DeleteRange 方法从键值存储中删除给定范围。删除请求增加键值存储的修订版本并在事件历史中为每个被删除的key生成一个删除事件。

    3.5K50

    八、《图解HTTP》 - HTTPS

    无法验证报文完整,无法防篡改。 除了协议本身的漏洞之外,一些编程语言也可能编写出不安全的网络应用程序。 明文窃听 既然HTTP是不加密通信的,那么自然会好奇它是如何被窃听的。...而HTTP同样历史发展悠久,也难以在短时间内对于协议修订和增强。...这里参考维基百科的介绍,大致介绍TLS/SSL 的历史。 感兴趣想要阅读原文的童鞋可以看看“参考资料”。 SSL 1.0、2.0和3.0 SSL1.0 从来没有发布过,因为存在巨大的安全漏洞和隐患。...集成会话哈希的使用。 弃用记录层版本号并冻结该编号以提高向后兼容性。 将一些与安全相关的算法详细信息从附录移动到规范,并将 ClientKeyShare 降级到附录。...可以从参考资料获取相关内容和信息 为什么不全用HTTPS 纯文本通信对比的加密通信消耗更多资源 非敏感的HTTPS使用意义和价值不大 购买证书的开销和成本。

    59820

    彻底搞懂 etcd 系列文章(五):etcdctl 的使用

    《彻底搞懂 etcd 系列文章》将会从 etcd 的基本功能实践、API 接口、实现原理、源码分析,以及实现中的踩坑经验等几方面具体展开介绍 etcd。...应用可以从 etcd 集群中删除一个键或者特定范围的键。...为了保证更新被交付,应用必须能够观察到键的历史变动。为了做到这点,应用可以在观察时指定一个历史修订版本,就像读取键的过往版本一样。...:# 从修订版本 2 开始观察键 `foo` 的改动 etcdctl watch --rev=2 fooPUTfoobarPUTfoobar_new从上一次历史修改开始观察:# 在键 `foo` 上观察变更并返回被修改的值和上个修订版本的值...如我们提到的,etcd 保存修订版本以便应用可以读取键的过往版本。但是,为了避免积累无限数量的历史数据,压缩过往的修订版本就变得很重要。压缩之后,etcd 删除历史修订版本,释放资源来提供未来使用。

    3.9K10

    假期还要卷,24个免费数据集送给你

    _encoding=UTF8&jiveRedirect=1 以下是一些示例: GoogleBooks中的n-gram列表-一大组书中的常见单词和单词组(https://aws.amazon.com/datasets...维基百科包含了惊人的知识广度,包含了从奥斯曼哈布斯堡战争到伦纳德·尼莫伊的所有页面。作为维基百科推进知识的承诺的一部分,他们免费提供内容,并定期生成网站上所有文章的转储。...此外,维基百科还提供了编辑历史和活动,因此我们可以跟踪某个主题的页面是如何随着时间的推移而演变的,以及谁对此做出了贡献。...(https://meta.wikimedia.org/wiki/Mirroring_Wikimedia_project_XML_dumps#Media0) 完整网站转储-维基百科上各种格式的内容(https...他们还提供了用于R和Python的SDK,以便在选择的工具中更容易地获取和使用数据 ❝https://www.data.world/ Data.gov data.gov 是一个相对较新的网站,是美国政府开放努力的一部分

    1.3K40

    维基百科你已经是个大百科了,该自己学会用ML识别原文出处了

    此外,最近的统计表明,相当一部分比例的文章只有很少的参考文献,英文维基百科中四分之一的文章根本就没有任何参考文献。...通过针对英语、意大利语和法语维基百科的编辑者们开展的一项大型研究,我们首先确定了维基百科文章中单个句子需要引用的共同原因。...通过识别维基百科获取信息的位置,我们能开发系统,以支持志愿者驱动的验证和事实检查,从而有可能提升维基百科的长期可靠性,抵御信息偏差、信息质量的差距以及虚假宣传。 我们为何要引用?...添加引用的理由 ? 不添加引用的理由 教机器学习引用 接下来,我们训练机器学习模型来发现需要引用的句子,并提供对应的理由。 我们首先训练一个模型,从整个编辑者社区中学习如何识别需要引用的句子。...我们从精选文章中随机抽取了 4000 个句子,让众包工作人员使用我们在之前的研究中识别出的八个原因进行标注。我们发现,当句子与科学或历史事实相关,或者是直接、间接引语时,我们需要提供引用。 ?

    59820

    LRU(续)

    让我们快速回顾一下我们需要的方法: • push() – 添加item • peek() – 获取到期时间/优先级最低的项目/桶 • remove() – 删除item • pop() – 未使用 我们在维基百科上看到优先级队列没有删除操作...因此,一个可能的解决方案是将条目标记为已删除,并添加一个具有修订后的优先级的新条目。 需要这种解决方法,因为虽然可以在 O(log n) 中删除第 i 个元素,但找到它的索引是 O(n)。...对于排序好的列表,pop()的复杂度是O(n),因为它在第一个元素之后向前移动所有剩下的元素;如果顺序颠倒,我们从末尾pop(),复杂度变为O(1)。...这看起来很像 Priority Buckets 代码,唯一值得注意的部分是eviction()。 这篇文章已经很长了,所以这里省略了一些。完整代码见文末“结论”的上方。...你不需要知道如何实现所有的数据结构,这就是(软件)库和维基百科的用途。但是,了解可用的内容以及何时使用它是很有用的。

    13510

    维基百科 MediaWiki API 解析

    使用开放的 API 做一个自己的小项目,是一个很好的学习方法。但好像开放的 API 选择并不多。这里给大家多一个选择,简单介绍一下维基百科使用的 MediaWiki API。...文档 在了解到维基百科的 API 是开放的之后,我就找到了官方的 API 文档,但以我目前的水平,这个文档几乎完全看不懂。...在网上找了很久,希望可以有一篇文章以中文看得懂的方式,告诉我这些 API 是怎么用的,但很可惜并没有。 没办法,自己对着官方文档琢磨了很久,勉强总结出一些比较常用的调用方法。...revisions 接下来是最重要的获取页面内容了。revisions 文档解释是用来获取修订版本信息的,可以用来获取最新的页面数据。...比如同时返回修订时间戳、修订的用户及修订内容,可以这样表示:rvprop=timestamp|user|content。 其实很多参数的取值都是支持使用「|」的,将多条数据一起返回。

    4.1K10

    三、《图解HTTP》- 报文内的 HTTP信息

    当然这两年这部分悄悄做了调整,显然在后续RFC修订协议过程中这些浏览器也对于这些概念进行跟进,不知道有多少人关注过,嗯,又是一个小细节。...,否则压缩不完整的数据会导致数据发生错误。...注意客户端驱动如果服务端不能回应客户端的请求,会退化为 服务器驱动协商,客户端驱动为了获取自己想要的内容需要 第二次发送请求(第一次获取列表,第二次才是得到资源),可见客户端的驱动模式并不是一种常用的方式...注意代理驱动和透明代理存在一定区别,它使用了HTTP协议自创建依赖就支持又称为响应代理机制的东西,这种机制也是和客户端驱动协商类似,返回资源列表给用户进行选择然后需要第二次请求获取需要的资源。...代理驱动型内容协商机制则多用于支持国际化的网站,比如一些大商城或者百科等,比较典型的比如Apple和维基百科等这些网站,提供了“建议”选项询问用户选择哪种语言进行浏览。

    38840

    塔说 | 如何用Python分析数字加密货币

    帮助 这篇文章的目的是简单介绍“如何用Python来分析数字加密货币”。我们将用简单的Python代码来检索、分析和可视化不同的数字货币数据。...在这个过程中,我们将揭示一个有趣的趋势:这些不稳定的市场是如何运作的,它们又是如何发展的。 比特币市场到底是如何运作的?数字加密货币(cryptocurrency)跌宕起伏的原因是什么?...要求的技能只是对Python有基础的了解,以及知道如何用命令建立一个项目。 包含运行结果的notebook完整版本可以在这里下载。...步骤2.1 - 编写Quandl帮助函数 为了方便数据获取,我们要编写一个函数来下载和同步来自Quandl(https://www.quandl.com/ 号称金融数据界的维基百科)的数据。 ?...步骤2.6 清理并加总价格数据 从以上图形中可以看到,尽管这四个系列数据遵循大致相同的路径,但其中还是有一些不规则的变化,我们将设法清除这些异常变化。

    2.4K50
    领券