请选择 进入手机版 | 继续访问电脑版
MSIPO技术圈 首页 IT技术 查看内容

Python爬虫实战之原神公告获取

2023-07-13

前言

好久不见了吧,博主最近也是成为了准高三,没有太多时间去创作文章了,所以这篇文章很有可能是高考前最后一篇文章了(也不一定😉)

言归正传,本次文章主要讲解如何去爬取原神官网的公告(我不玩原神!!!!)

开始

1.准备

  1. 好学的心
  2. httpx

2.寻找接口

首先我们来到原神官网,并按F12开启开发者工具

接着我们点击新闻,选择公告,在开发者工具中选择 Fetch/XHR 过滤请求

如果操作无误那么我们可以得到这个请求,也就是第二个请求

链接是这样的: https://content-static.mihoyo.com/content/ysCn/getContentList?pageSize=5&pageNum=1&channelId=12

这个就是我们要找到数据接口请求链接

接口参数详解

  1. pageSize :控制数据条数,比如我要请求前20条公告该参数值就为20,数据类型为 int
  2. pageNum :控制数据页数,比如我要20条数据,但是我pageSize填3,那么该参数为2的时候返回的就是前4-6条公告,其他以此类推,数据类型为 int
  3. channelId :博主暂时没有搞懂该参数含义,可能是某种标识,推测12代表公告,其他代表新闻这种意思

3.写代码

找到接口我们就应该开始写代码了,话不多说,上代码

import json

import httpx

with httpx.Client() as client:
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36 QIHU 360SE'
    }
    url = "https://content-static.mihoyo.com/content/ysCn/getContentList?pageSize=20&pageNum=1&channelId=12"  # 这里以20条公告为例
    data = client.get(url=url, headers=headers)  # 请求公告数据
    data = json.loads(data.text)  # 将数据转换成字典
print(data)

运行程序,我们会得到下列返回结果

{'retcode': 0, 'message': '操作成功', 'data': {'total': 93, 'list': [{'contentId': '26400', 'channelId': ['12', '259'], 'title': '《原神》3.5版本「风花的呼吸」更新说明', 'author': None, 'type': None, 'tag': None, 'intro': None, 'url': None, 'ext': [{'arrtName': 'title-简写', 'keyId': 1560152565522, 'value': ''}, {'arrtName': 'banner', 'keyId': 1591668079640, 'value': [{'name': '720x320.png', 'url': 'https://webstatic.mihoyo.com/upload/contentweb/2023/02/28/c9ce9c6451451fa554ab74c2342d2c19_7924384204652977964.png'}]}], 'start_time': '2023-03-01 07:00:00', 'id': '26400'}, {'contentId': '26370', 'channelId': ['12', '259'], 'title': '《原神》「风花的呼吸」3.5版本更新维护预告', 'author': None, 'type': None, 'tag': None, 'intro': None, 'url': None, 'ext': [{'arrtName': 'title-简写', 'keyId': 1560152565522, 'value': ''}, {'arrtName': 'banner', 'keyId': 1591668079640, 'value': [{'name': '游戏内公告迭代-720-320安全区.jpg', 'url': 'https://webstatic.mihoyo.com/upload/contentweb/2023/02/27/48fe0090e4376a66b2f52007f8dc8e77_4916568639223877411.jpg'}]}], 'start_time': '2023-02-27 11:23:23', 'id': '26370'}, {'contentId': '25734', 'channelId': ['12'], 'title': '《原神》预下载已开启', 'author': None, 'type': None, 'tag': None, 'intro': None, 'url': None, 'ext': [{'arrtName': 'title-简写', 'keyId': 1560152565522, 'value': ''}, {'arrtName': 'banner', 'keyId': 1591668079640, 'value': [{'name': '720-320.jpg', 'url': 'https://webstatic.mihoyo.com/upload/contentweb/2023/01/16/adaca686a9d402cab8d822fa10732988_6944874481639867125.jpg'}]}], 'start_time': '2023-01-16 11:05:00', 'id': '25734'}, {'contentId': '25733', 'channelId': ['12'], 'title': '《原神》3.4版本「磬弦奏华夜」更新维护预告', 'author': None, 'type': None, 'tag': None, 'intro': None, 'url': None, 'ext': [{'arrtName': 'title-简写', 'keyId': 1560152565522, 'value': ''}, {'arrtName': 'banner', 'keyId': 1591668079640, 'value': [{'name': '690.jpg', 'url': 'https://webstatic.mihoyo.com/upload/contentweb/2023/01/16/7f341ba2332a05fba996d820334bdebb_2996032226775512164.jpg'}]}], 'start_time': '2023-01-16 10:29:13', 'id': '25733'}, {'contentId': '25037', 'channelId': ['12'], 'title': '《原神》3.3版本「六入尽明,诸相皆无」更新说明', 'author': None, 'type': None, 'tag': None, 'intro': None, 'url': None, 'ext': [{'arrtName': 'title-简写', 'keyId': 1560152565522, 'value': ''}, {'arrtName': 'banner', 'keyId': 1591668079640, 'value': [{'name': '720.jpg', 'url': 'https://webstatic.mihoyo.com/upload/contentweb/2022/12/07/5cc3065b6ef051d74479baf232831e35_7777248077405843881.jpg'}]}], 'start_time': '2022-12-07 09:33:08', 'id': '25037'}, {'contentId': '24955', 'channelId': ['12'], 'title': '《原神》3.3版本更新维护预告', 'author': None, 'type': None, 'tag': None, 'intro': None, 'url': None, 'ext': [{'arrtName': 'title-简写', 'keyId': 1560152565522, 'value': ''}, {'arrtName': 'banner', 'keyId': 1591668079640, 'value': [{'name': '游戏内公告迭代-720-320安全区.jpg', 'url': 'https://webstatic.mihoyo.com/upload/contentweb/2022/12/04/48fe0090e4376a66b2f52007f8dc8e77_3458819542487902745.jpg'}]}], 'start_time': '2022-12-05 10:30:00', 'id': '24955'}, {'contentId': '24436', 'channelId': ['12'], 'title': '《原神》「虚空鼓动,劫火高扬」3.2版本更新维护预告', 'author': None, 'type': None, 'tag': None, 'intro': None, 'url': None, 'ext': [{'arrtName': 'title-简写', 'keyId': 1560152565522, 'value': ''}, {'arrtName': 'banner', 'keyId': 1591668079640, 'value': [{'name': '游戏内公告迭代-720-320安全区.jpg', 'url': 'https://webstatic.mihoyo.com/upload/contentweb/2022/10/31/48fe0090e4376a66b2f52007f8dc8e77_2523267794398635617.jpg'}]}], 'start_time': '2022-10-31 11:38:43', 'id': '24436'}, {'contentId': '22749', 'channelId': ['11', '12'], 'title': '《原神》3.1版本「赤土之王与三朝圣者」更新说明', 'author': None, 'type': None, 'tag': None, 'intro': None, 'url': None, 'ext': [{'arrtName': 'title-j简写', 'keyId': 1560152545989, 'value': ''}, {'arrtName': 'banner', 'keyId': 1591668058800, 'value': [{'name': '720x320-安全区600x280.jpg', 'url': 'https://webstatic.mihoyo.com/upload/contentweb/2022/09/27/3efa40b0e761d8f15fc640b7e12bfbf6_5749587768232257187.jpg'}]}, {'arrtName': 'title-简写', 'keyId': 1560152565522, 'value': ''}], 'start_time': '2022-09-28 07:00:00', 'id': '22749'}, {'contentId': '22714', 'channelId': ['11', '12'], 'title': '《原神》3.1版本「赤土之王与三朝圣者」更新维护预告', 'author': None, 'type': None, 'tag': None, 'intro': None, 'url': None, 'ext': [{'arrtName': 'title-j简写', 'keyId': 1560152545989, 'value': ''}, {'arrtName': 'banner', 'keyId': 1591668058800, 'value': [{'name': '690-320.jpg', 'url': 'https://webstatic.mihoyo.com/upload/contentweb/2022/09/26/7f341ba2332a05fba996d820334bdebb_734662277370844096.jpg'}]}, {'arrtName': 'title-简写', 'keyId': 1560152565522, 'value': ''}], 'start_time': '2022-09-26 11:11:59', 'id': '22714'}, {'contentId': '22284', 'channelId': ['11', '12', '259'], 'title': '《原神》「千朵玫瑰带来的黎明」3.0版本更新维护预告', 'author': None, 'type': None, 'tag': None, 'intro': None, 'url': None, 'ext': [{'arrtName': 'title-简写', 'keyId': 1560152565522, 'value': ''}, {'arrtName': 'banner', 'keyId': 1591668079640, 'value': [{'name': '720-320.jpg', 'url': 'https://webstatic.mihoyo.com/upload/contentweb/2022/08/22/a926989766b3a74ae0a24917c7843b4d_6141685495939164846.jpg'}]}, {'arrtName': 'title-j简写', 'keyId': 1560152545989, 'value': ''}], 'start_time': '2022-08-22 11:44:38', 'id': '22284'}, {'contentId': '20165', 'channelId': ['12'], 'title': '《原神》2.5版本「薄樱初绽时」更新通知', 'author': None, 'type': None, 'tag': None, 'intro': None, 'url': None, 'ext': [{'arrtName': 'title-简写', 'keyId': 1560152565522, 'value': ''}, {'arrtName': 'banner', 'keyId': 1591668079640, 'value': []}], 'start_time': '2022-02-16 07:00:00', 'id': '20165'}, {'contentId': '20020', 'channelId': ['12'], 'title': '《原神》2.5版本「薄樱初绽时」更新通知', 'author': '', 'type': '', 'tag': '', 'intro': '', 'url': '', 'ext': [{'arrtName': 'title-简写', 'keyId': 1560152565522, 'value': ''}, {'arrtName': 'banner', 'keyId': 1591668079640, 'value': []}], 'start_time': '2022-02-14 11:11:27', 'id': '20020'}, {'contentId': '19990', 'channelId': ['12', '259'], 'title': '「流光飞彩」海灯节答谢邮件发放问题处理说明', 'author': '', 'type': '', 'tag': '', 'intro': '', 'url': '', 'ext': [{'arrtName': 'title-简写', 'keyId': 1560152565522, 'value': ''}, {'arrtName': 'banner', 'keyId': 1591668079640, 'value': []}], 'start_time': '2022-02-09 01:25:00', 'id': '19990'}, {'contentId': '19560', 'channelId': ['12'], 'title': '《原神》2.4版本「飞彩镌流年」更新说明', 'author': '', 'type': '', 'tag': '', 'intro': '', 'url': '', 'ext': [{'arrtName': 'title-简写', 'keyId': 1560152565522, 'value': ''}, {'arrtName': 'banner', 'keyId': 1591668079640, 'value': []}], 'start_time': '2022-01-05 07:00:00', 'id': '19560'}, {'contentId': '19494', 'channelId': ['12'], 'title': '《原神》「飞彩镌流年」2.4版本更新通知', 'author': '', 'type': '', 'tag': '', 'intro': '', 'url': '', 'ext'

相关阅读

热门文章

    手机版|MSIPO技术圈 皖ICP备19022944号-2

    Copyright © 2024, msipo.com

    返回顶部