吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 18412|回复: 17
收起左侧

[Python 原创] 【python】+warframe警报任务查询(第一次写爬虫,大佬不要笑话)

  [复制链接]
yuan893720647 发表于 2018-5-15 21:17
本帖最后由 wushaominkk 于 2018-5-15 22:58 编辑

背景说明:最近在玩国际服的星际战甲(warframe),因为里面的警报任务是动态刷新的,虽然有一些网站可以看,但是每次打开网页总觉得太麻烦了,于是就自己动手写了一个爬虫,差不多是边学边写,不好的地方请指出来,共同进步,谢谢。
必须用到的工具:
  • 一个可以抓包的浏览器,
  • python 3.6环境,
  • python编译器。
  • 脑子(这不废话么,在看的哪个不是大佬)

开始:
数据来源:直接在游戏里面提取肯定是不现实的,上面也说了有很多提供这些信息的网站,经过筛选,确定网站(主要是因为是中文我看得懂才选的)http://wf.poedb.tw/,下图是我要的数据。

我要的信息

我要的信息

数据抓包:因为之前我也说了这个任务是动态的,所以我这里直接可以排除在源代码中去找我要的数据包,直接进行抓包,我用的360浏览器,直接按F12---network--clear(清除原来的包,一般也没有)--F5(刷新),我们得到下面的图。

抓包

抓包

数据分析:里面有很多的.css和.js以及.png的后缀的直接不用看,然后一个一个的去点开查看,然后就可以找到我们的目标,如下图,我们注意方框中的两个数据是一样的,红色的箭头也注意一下,
data.php?t=all就是我们的要的数据。

分析数据包

分析数据包

提取数据:我们要的数据找到了,下面就是怎么把这些数据拿下来,我们点开
data.php?t=all数据包的haders,里面可以看到链接地址。

数据地址

数据地址

代码编写:准备工作是多了点(不过是有必要的),不过我们现在开始吧(不准吐槽我的命名)。

需要的模块

[Python] 纯文本查看 复制代码
import json
import time
import urllib.request

把数据拿到本地:

[Python] 纯文本查看 复制代码
def getlist():
        # 获取地址
        weburl = 'http://wf.poedb.tw/data.php?t=all'
        # 配置头信息
        htmlheader = {
                'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
        req = urllib.request.Request(url=weburl, headers=htmlheader)
        # 获取url内容
        html = urllib.request.urlopen(weburl)
        data = html.read()
        # 转换格式
        data = data.decode('UTF-8')
        # 得到一个包含警报,入侵,虚空裂缝,突袭,平原是不是白天,商人什么时间离开的字典
        dict = json.loads(data)
        return dict

说明一下,因为直接拿到的数据是json类型的,所以我们要把转换成python中的字典,方便处理,转换格式是为了让汉字显示出来。

既然拿到了数据我们就来处理一下吧。

[Python] 纯文本查看 复制代码
def jingbao():
        # 从字典中吧警报任务提取出来,取出来是一个列表
        jb = getlist()['alerts_raw']
        for name in jb:
                # 分别取出列表的元素
                xingqiu = name[2]
                ditu = name[1]
                renwu = name[3]
                xibie = name[4]
                ddengji = name[5]
                gdengji = name[6]
                ktime = name[7]
                jtime = name[8]
                wpjiangli = name[9]
                jinqian = name[11]
                # 获取本地时间戳
                time_now = int(time.time())
                # 得到时间戳差
                cha = jtime - time_now
                # 用求余的方式得到相差时间的秒数
                miao = cha % 60
                # 计算出有多少分钟
                fenzhong = cha / 60
                # 用求余的方式得到相差时间的分钟数
                fenzhongd = fenzhong % 60
                # 判读如果大于60分钟就求有多少小时
                if fenzhong >= 60:
                        # 用整除的方式得到有多少小时
                        xiaoshi = fenzhong // 60

                print(xingqiu + '(' + ditu + ')' + renwu + '任务:' + '\n    奖励物品:' + wpjiangli + '\n    现金奖励:' + jinqian)
                print('    怪物等级:' + str(ddengji) + '-' + str(
                                gdengji) + '\n    怪物系别:' + xibie)
                print('    剩余时间:' + str(int(xiaoshi)) + '小时' + str(int(fenzhongd)) + '分钟' + str(int(miao)) + '秒')
                # 变量归零,免得影响其他数据
                fenzhong = 0
                xiaoshi = 0
                fenzhongd = 0

下面调用函数就可以了
[Python] 纯文本查看 复制代码
jingbao()


运行完成,放一张成果图,源代码也传上来,里面有一点变动,但是不影响,谢谢大家

成果

成果


警报任务.zip

1.57 KB, 下载次数: 96, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 6吾爱币 +9 热心值 +6 收起 理由
fch + 1 很棒
1358582642 + 1 + 1 用心讨论,共获提升!
wushaominkk + 3 + 1 鼓励新人贴,吾爱因你更精彩!
苏紫方璇 + 3 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
wilmeryu + 1 + 1 用心讨论,共获提升!
walkersky + 1 + 1 OJBK

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| yuan893720647 发表于 2018-11-17 15:28
huaizhu123 发表于 2018-11-16 21:25
最近也在玩,不多不懂大佬弄这个是干嘛,有没有什么方彪看懂的话

就是用来看报警的一个脚本,网上这样的网站很多的,我放在手机上,随时可以看有没有自己想要的奖励,有我就上线 。
 楼主| yuan893720647 发表于 2019-2-13 17:04
Guozhi_s 发表于 2019-2-6 11:25
大佬 我也想写一个你这样的看警报的程序  我已经在 “云乡”哪里申请到了 API 你可以教教我吗

我这个太简单了,就是抓的别人网站的数据的,本质就是一个爬虫
wilmeryu 发表于 2018-5-15 22:00
tzzhj1 发表于 2018-5-15 22:19 来自手机
又一位准备点燃神火的大佬,我等凡人仰望中
memory947 发表于 2018-5-16 10:03
目前也在学Python 加油中
lmc1998913 发表于 2018-6-14 15:16 来自手机
不是有个手机app么
honb1 发表于 2018-7-22 14:31
厉害哎厉害
woodeaster 发表于 2018-7-23 19:55 来自手机
高举王座,送大佬上天
超能力患者 发表于 2018-10-13 23:55
PY格式是什么意思
someonedeng 发表于 2018-10-21 23:32
这个官方好像提供了api接口。。。
佐指环 发表于 2018-10-23 09:14
谢谢,刚好需要
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 20:58

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表