立即注册 登录
社友网(新版) 返回首页

admin的个人空间 http://su.sseuu.com/?1 [收藏] [复制] [分享] [RSS]

日志

采用Python编写一个从mediawiki平台建立的维基百科网站上获取某一个网页的浏览量。

已有 46 次阅读2024-9-30 19:59

要从MediaWiki平台建立的维基百科网站上获取某个网页的浏览量,可以使用Python和一些Web请求库(如requests)以及解析库(如BeautifulSouplxml)。不过需要注意的是,维基百科的页面浏览量数据通常不直接暴露在普通的网页源码中,而是通过一些特定的API或数据库查询来获取。

以下是一个示例,展示如何使用Python和requests库从维基百科API获取页面浏览量。这里我们使用的是Pageviews API,它能够返回某个页面在指定时间段内的浏览量。

首先,确保你已经安装了requests库。如果没有安装,可以使用以下命令安装:

bash复制代码
pip install requests

接下来,使用以下代码获取某个页面的浏览量:

python复制代码
import requests
def get_pageviews(page_title, start_date, end_date, access='all-access', agent='user'):
"""
获取维基百科页面的浏览量
参数:
page_title (str): 页面标题
start_date (str): 开始日期,格式为 'YYYYMMDD'
end_date (str): 结束日期,格式为 'YYYYMMDD'
access (str): 访问类型,如 'all-access'(全部访问), 'desktop-site'(桌面站点), 'mobile-site'(移动站点)
agent (str): 用户代理,如 'user'(所有用户), 'spider'(爬虫), 'all-agents'(所有)
返回:
dict: 包含页面浏览量的数据
"""
url = f"https://wikimedia.org/api/rest_v1/metrics/pageviews/per-article/{access}/{agent}/{page_title}/{start_date}/{end_date}"
response = requests.get(url)
if response.status_code == 200:
return response.json()
else:
response.raise_for_status()
# 示例使用
page_title = 'Python' # 页面标题
start_date = '20230101' # 开始日期
end_date = '20230131' # 结束日期
pageviews_data = get_pageviews(page_title, start_date, end_date)
print(pageviews_data)

解释

  1. 函数定义
    • get_pageviews 函数接受页面标题、开始日期、结束日期、访问类型和用户代理作为参数,并构建相应的API请求URL。
  2. 发送请求
    • 使用requests.get发送HTTP GET请求到Wikimedia的Pageviews API。
  3. 处理响应
    • 如果请求成功(状态码为200),则返回JSON格式的响应数据;否则,抛出异常。
  4. 示例使用
    • 通过指定页面标题(如"Python")和日期范围(如2023年1月),调用get_pageviews函数并打印结果。

注意事项

  • 确保提供的日期格式为YYYYMMDD
  • Pageviews API有一定的速率限制,频繁请求可能会被封禁。
  • 如果页面标题包含特殊字符或空格,需要用下划线(_)代替。

通过上述方法,你可以轻松获取指定维基百科页面在特定时间段内的浏览量数据。

全部作者的其他最新日志

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

小黑屋|Archiver|手机版|粤ICP备12005776号-5|su.sseuu.com  

GMT+8, 2025-1-19 18:21 , Processed in 0.033570 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2013 Comsenz Inc.

返回顶部