使用 Python 获取 Wiki 词汇表页面下所有子页面的浏览量

使用 python 获取 wiki 词汇表页面下所有子页面的浏览量

本文介绍如何使用 Python 从 Wiki 词汇表页面提取所有子页面的浏览量。由于词汇表页面的内容是非结构化的,因此需要手动解析页面内容,提取子页面标题,然后使用 Pageviews API 获取每个子页面的浏览量。本文将提供详细的步骤和示例代码,帮助你完成这个任务。

1. 确定目标页面和工具

首先,你需要确定要提取浏览量的 Wiki 词汇表页面。例如,https://en.wikipedia.org/wiki/Glossary_of_areas_of_mathematics。

其次,我们将使用 Python 及其相关的库来实现这个目标:

requests: 用于发送 HTTP 请求,获取页面内容。Beautiful Soup 4: 用于解析 HTML 内容,提取子页面标题。

你可以使用 pip 安装这些库:

立即学习“Python免费学习笔记(深入)”;

pip install requests beautifulsoup4

2. 获取页面内容

使用 requests 库获取目标页面的 HTML 内容。

import requestsfrom bs4 import BeautifulSoupurl = "https://en.wikipedia.org/wiki/Glossary_of_areas_of_mathematics"response = requests.get(url)response.raise_for_status()  # 检查请求是否成功html_content = response.text

3. 解析 HTML 内容,提取子页面标题

使用 Beautiful Soup 4 解析 HTML 内容,并提取所有子页面的标题。 因为词汇表页面通常使用列表或链接来组织子页面,你需要根据页面的具体结构来编写解析代码。以下是一个示例,假设子页面链接都包含在

标签内的 标签中:

soup = BeautifulSoup(html_content, 'html.parser')page_titles = []# 查找所有包含链接的 
  • 标签for li in soup.find_all('li'): a_tag = li.find('a') if a_tag and a_tag.has_attr('href') and a_tag['href'].startswith('/wiki/'): title = a_tag['title'] page_titles.append(title)print(page_titles)
  • 注意:

    你需要根据实际页面的 HTML 结构调整解析代码。a_tag.has_attr(‘href’) and a_tag[‘href’].startswith(‘/wiki/’) 确保只提取指向 Wiki 页面的链接。a_tag[‘title’] 提取链接的 title 属性,这通常是页面的标题。

    4. 使用 Pageviews API 获取浏览量

    使用 Pageviews API 获取每个子页面的浏览量。 Pageviews API 的文档地址是:https://www.php.cn/link/e5e07cc9b49607a00a6d5c9be9b2c364

    你可以通过构造 URL 并发送 HTTP 请求来获取浏览量。 Pageviews API 允许一次查询多个页面,页面标题之间用 | 分隔。 但是,一次查询的页面数量有限制,因此你需要分批查询。

    import requestsimport jsondef get_pageviews(titles):    base_url = "https://pageviews.toolforge.org/api/views/per-article/"    params = {        'articles': '|'.join(titles),        'project': 'en.wikipedia.org',        'access': 'all-access', # all-access, desktop, mobile        'agent': 'user', # all-agents, user, spider        'granularity': 'monthly', # daily, monthly        'start': '2020010100', #YYYYMMDDHH        'end': '2024010100' #YYYYMMDDHH    }    response = requests.get(base_url, params=params)    response.raise_for_status()    data = response.json()    return data['items']# 分批处理页面标题batch_size = 50  # 一次查询的页面数量限制all_pageviews = {}for i in range(0, len(page_titles), batch_size):    batch = page_titles[i:i + batch_size]    pageviews = get_pageviews(batch)    for item in pageviews:        all_pageviews[item['article']] = item['views']# 打印结果for title, views in all_pageviews.items():    print(f"{title}: {views}")

    注意:

    你需要根据 API 文档调整请求参数,例如 project、start、end 等。batch_size 的大小需要根据 API 的限制进行调整。get_pageviews 函数返回的是 JSON 数据,你需要解析它以获取浏览量。Pageviews API返回的是一段时间内的浏览量,你可以根据 granularity 参数选择每日或每月的浏览量。

    5. 完整示例代码

    将以上步骤整合起来,得到完整的示例代码:

    import requestsfrom bs4 import BeautifulSoupimport jsondef get_pageviews(titles):    base_url = "https://pageviews.toolforge.org/api/views/per-article/"    params = {        'articles': '|'.join(titles),        'project': 'en.wikipedia.org',        'access': 'all-access', # all-access, desktop, mobile        'agent': 'user', # all-agents, user, spider        'granularity': 'monthly', # daily, monthly        'start': '2020010100', #YYYYMMDDHH        'end': '2024010100' #YYYYMMDDHH    }    response = requests.get(base_url, params=params)    response.raise_for_status()    data = response.json()    return data['items']url = "https://en.wikipedia.org/wiki/Glossary_of_areas_of_mathematics"response = requests.get(url)response.raise_for_status()html_content = response.textsoup = BeautifulSoup(html_content, 'html.parser')page_titles = []# 查找所有包含链接的 
  • 标签for li in soup.find_all('li'): a_tag = li.find('a') if a_tag and a_tag.has_attr('href') and a_tag['href'].startswith('/wiki/'): title = a_tag['title'] page_titles.append(title)# 分批处理页面标题batch_size = 50 # 一次查询的页面数量限制all_pageviews = {}for i in range(0, len(page_titles), batch_size): batch = page_titles[i:i + batch_size] pageviews = get_pageviews(batch) for item in pageviews: all_pageviews[item['article']] = item['views']# 打印结果for title, views in all_pageviews.items(): print(f"{title}: {views}")
  • 注意事项和总结

    请务必根据实际页面的 HTML 结构调整解析代码。Pageviews API 有请求频率限制,你需要合理控制请求频率,避免被封禁。你可以根据需要修改请求参数,例如 start、end、granularity 等。本教程提供了一个通用的方法,你可以将其应用于其他 Wiki 页面,只需要修改页面 URL 和解析代码即可。可以考虑使用缓存机制,将已经获取过的浏览量缓存起来,避免重复请求 API。

    通过本教程,你已经学会了如何使用 Python 从 Wiki 词汇表页面提取所有子页面的浏览量。 希望这些知识对你有所帮助!

    以上就是使用 Python 获取 Wiki 词汇表页面下所有子页面的浏览量的详细内容,更多请关注创想鸟其它相关文章!

    版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
    如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
    发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1291216.html

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    上一篇 2025年12月11日 07:17:14
    下一篇 2025年12月11日 07:17:26

    相关推荐

    • 一文解构9月1日将上线的WLFI代币:集金融基石,市场博弈与宏观叙事的三位一体

      目录 第一部分:金融基石分析 —— 已被审计证实的稳健性与风险防火墙关键发现 1:运营与品牌分离的「防火墙」关键发现 2:100% 由高信用 RWA 构成的储备资产关键发现 3:可持续的超额抵押第二部分:市场博弈分析 —— 无后顾之忧的 7.5 亿美元「战略调节器」背景:一笔被新闻报道所证实的「反常…

      好文分享 2025年12月11日
      000
    • 加密货币财库:上市公司的资产革命,还是一场高风险的身份赌注?

      目录 从保险箱到牌桌从对冲通胀到战略核心身份的异化——你买的是软件公司,还是比特币ETF?杠杆的双刃剑——放大的机遇与悬顶的达摩克利斯之剑一场无法回头的身份赌注 自2020年起,以MicroStrategy为代表的上市公司开始将加密货币作为核心财库资产,通过发债和杠杆化操作大规模购入比特币、以太坊等…

      2025年12月11日
      000
    • 什么是去中心化应用程序 (dApp)?一文通俗解释中心化应用程序 (dApp)

      在理解去中心化应用程序(dApp)之前,我们有必要先了解我们日常接触的绝大多数应用程序,它们被称为中心化应用程序。我们手机上使用的社交媒体、购物平台、银行应用等,都属于中心化应用。这类应用的特点是其所有的数据和运营逻辑都储存在由某个公司或组织控制的中心服务器上。 这个中心化的实体拥有绝对的控制权,可…

      2025年12月11日
      000
    • 比特币近期表现如何?比特币10年价格回顾与未来走势分析

      目录 近期比特币价格表现近期价格波动原因分析宏观经济因素监管政策动态技术面因素市场情绪与投资者行为比特币 10 年价格回顾未来走势预测投资者参考策略总结 比特币(bitcoin,btc)作为全球最具影响力的加密资产之一,其价格波动一直备受关注。根据最新数据,比特币实时价格为 112,954 美元,过…

      2025年12月11日
      000
    • 数字货币和区块链有什么区别?通俗解释数字货币与区块链的区别

      在当今的科技讨论中,数字货币与区块链是两个频繁被提及的词汇。很多人会将它们混为一谈,认为它们是同一个概念。实际上,它们代表着完全不同但又紧密相连的两个事物。理解它们的区别,就像是理解互联网和电子邮件的区别一样。互联网是基础技术,而电子邮件是建立在这项技术之上的一个具体应用。同样,区块链是一种底层技术…

      2025年12月11日
      000
    • 币圈逢低买入是什么意思?如何在恐慌中获利?

      “逢低买入”(Buy the Dip)是一种广为人知的投资策略,尤其在价格波动剧烈的环境中备受关注。其核心思想是在资产价格经历显著下跌后,投资者判断该下跌是暂时的市场回调而非永久性价值崩溃,从而在相对较低的价位买入资产,期望价格未来能够反弹回升甚至再创新高,以此获得收益。 这种策略本质上是一种逆向投…

      2025年12月11日
      000
    • Binance币安官方最新版v3.1.7 APP下载安装 2025Bian官网地址链接入口

      币安(Binance)作为全球范围内广受欢迎的数字资产服务平台,为用户提供了丰富多样的加密货币交易、理财及相关衍生品服务。其官方APP设计简洁、功能强大,是众多数字资产爱好者的首选工具。 币安binance官网入口: 币安app官网下载: 下载步骤 1、请点击下方的官方指定下载链接,您的浏览器将自动…

      2025年12月11日
      000
    • 虚拟货币交易所app v6.133.0 官方安卓版

      以下是根据用户需求整理的虚拟货币交易所排名及介绍: 1. Binance 币安(Binance)是全球领先的加密货币交易平台之一,提供广泛的加密货币交易对和 丰富的金融衍生品服务。该平台以其 高流动性、低交易费用和先进的安全措施 而闻名,吸引了全球数百万用户。币安不仅支持现货交易,还提供期货、期权、…

      2025年12月11日 好文分享
      000
    • 欧易官方入口 欧易交易app下载入口一键直达

      欧易是一款知名的数字资产交易平台,致力于为全球用户提供安全、便捷、专业的数字资产交易服务。平台支持多种主流数字货币交易,拥有丰富的交易对选择、高级交易工具以及用户友好的操作界面。本文将为您提供欧易官方app的下载入口及详细安装教程,方便您快速体验其优质服务。 欧易官网一键直达入口: 欧易官方APP下…

      2025年12月11日
      000
    • 币安官网入口一键直达 币安官方最新地址

      币安(binance)是全球领先的加密货币交易平台之一,提供比特币、以太坊、莱特币等多种数字资产的交易服务。平台以其高安全性、低交易费用和友好的用户界面而闻名,深受全球加密货币爱好者的信赖。本文为您提供币安官方最新地址的下载链接,点击即可轻松下载并体验安全便捷的数字资产交易服务。 币安官网入口: 币…

      好文分享 2025年12月11日
      000
    • NFT 与现实权益结合:创新应用场景

      NFT正深度融合现实权益,应用于奢侈品、房地产、音乐等领域,实现资产确权与流通革新,但面临法律合规、技术安全、估值风险及线下管理等挑战,需通过完善监管、强化安全、透明披露和用户教育等机制实现可持续发展。 NFT,或称非同质化代币,已不再仅仅是数字艺术品或收藏品的代名词。随着区块链技术的不断成熟,NF…

      2025年12月11日
      000
    • 币安binance交易所平台app下载安装入口 v3.2.5

      币安(Binance)作为知名的数字资产服务平台,为全球用户提供广泛的数字货币交易、行情查询和资产管理功能。其官方App设计简洁、操作流畅,是许多用户的首选移动端交易工具。 本文将为您提供币安app v3.2.5最新版本的官方下载安装教程,点击文中提供的专属下载链接即可安全获取官方安装文件。 下载步…

      2025年12月11日
      000
    • 新手买币有风险吗?如何才能安全的买入虚拟货币

      对于刚接触虚拟货币的新手来说,买币确实存在一定风险,包括价格波动、账户安全以及交易所操作风险。本文将详细解析如何安全地买入比特币、以太坊等加密货币,并提供实际操作参考,帮助新手降低风险。 新手买币的风险有哪些? 首先,需要了解价格波动大是加密货币的核心风险,短时间内价格可能大幅上涨或下跌。其次,账户…

      2025年12月11日
      000
    • 如何在币圈实现低风险获利?

      在币圈,实现低风险获利是许多新手和中级投资者关注的重点。由于加密货币市场波动较大,直接跟随价格涨跌进行投机可能带来高风险。本文将从安全策略、工具使用及资金管理等角度,为您讲解如何尽量降低风险,实现稳健获利。 低风险获利的核心策略 首先,投资者需要明确风险控制优先,通过分散投资和稳健操作减少潜在损失。…

      2025年12月11日
      000
    • 什么是虚拟货币的套利?怎么参与虚拟货币的买卖

      虚拟货币套利概念解析 虚拟货币套利主要包括以下几种类型: 跨交易所套利:利用不同交易所间同一币种价格差进行买卖。跨币种套利:通过不同币种交易对(如BTC/USDT与ETH/USDT)间的价格波动套利。闪电套利:利用瞬间价格波动进行快速交易,通常需要高速交易工具或机器人辅助。 推荐交易平台与开户指南 …

      2025年12月11日
      000
    • 一文解析 Stablecoin 2.0:稳定币的进阶之路

      Stablecoin 2.0是稳定币的下一代演进,旨在通过去中心化架构、增强透明度、整合现实世界资产(RWA)及优化算法机制,解决当前稳定币在中心化风险、审查阻力、资本效率和脱锚弹性等方面的局限,推动其在DeFi、跨境支付和Web3生态中更广泛、稳健的应用。 什么是Stablecoin 2.0? S…

      2025年12月11日
      000
    • 剖析加密货币市场的做市商角色与影响

      做市商通过提供流动性、促进价格发现、缩小价差和降低波动性,保障加密货币市场高效稳定运行,其核心策略包括价差捕捉、库存管理、风险对冲及高频交易,同时面临价格波动、技术故障和监管不确定性等风险,交易所则通过费率优惠、API支持和做市商计划吸引其参与,提升整体交易环境。 在波澜壮阔的加密货币市场中,有一个…

      2025年12月11日
      000
    • 欧易交易所官方app下载链接 欧易okex交易平台官网入口

      欧易(okex)是一款全球领先的数字资产交易平台,为用户提供安全、稳定、可靠的加密货币交易服务。它支持比特币、以太坊等多种主流数字货币的现货、合约等交易类型,并提供专业的金融工具与产品。 本文将为您提供欧易交易所官方app的下载链接和详细的安装教程,您只需点击本文中的下载链接,即可轻松获取官方最新版…

      2025年12月11日
      000
    • 新手小白怎么注册虚拟货币账户

      对于刚进入币圈的新手小白来说,注册虚拟货币账户是第一步,也是非常关键的一步。本文将详细介绍加密货币账户注册流程、主流购买渠道推荐,以及app下载指南,帮助新手快速上手。 主流交易所注册与下载入口 为了便于快速开户和安全交易,推荐选择以下正规交易所: 币安(Binance):提供比特币、以太坊及多币种…

      2025年12月11日 好文分享
      000
    • 区块链是如何运作的?通俗解释区块链的工作原理

      区块链这个概念听起来可能很复杂,但其核心思想可以被分解为一些相对简单的概念。我们可以把它想象成一个非常特殊的数字记账本。这个记账本不是由某一个人或某个机构(比如银行)来保管,而是由成千上万台计算机共同维护。这个分布式数字账本的特点在于它的记录方式是公开透明的,并且一旦记录下来,就几乎不可能被篡改。 …

      2025年12月11日
      000

    发表回复

    登录后才能评论
    关注微信