码迷,mamicode.com
首页 > 编程语言 > 详细

Python-王者自动刷金币+爬取英雄信息+图片

时间:2019-01-24 13:14:49      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:tps   RoCE   orm   处理   dom   src   tle   实现   开源   

   前提:本文主要功能是

        (Gif传上来好像像素有点问题,实际情况是可以循环挑战)

        1.用python代刷王者荣耀金币

        2.爬取英雄信息

        3.爬取王者荣耀图片之类的。

   思路:第一个功能是在基于去年自动刷跳一跳python代码上面弄的,思路来源陈想大佬,主要是图片识别像素,然后本机运行模拟器即可,第二、三功能是python基本爬虫功能。3个功能整合了一下。

   实现效果如下:

  

  技术分享图片

      

   

技术分享图片

 

技术分享图片

 

 

/***************************************************************************************************************************************************************************************************/

  1.自动刷王者荣耀金币(主要):

    配置环境

      adb环境配置: https://www.cnblogs.com/yc8930143/p/8259486.html 

                     i.            pip 安装PIL模块

                    ii.            pip安装six模块

                    iii.            pip安装shutil模块

                    iv.            pip安装subprocess模块

                    v.            pip安装numpy模块

                    vi.            pip安装matplotlib模块

    模拟器或者手机什么的只要adb device 能识别就行,端口什么的不影响,然后命令行在文件根目录下运行即可。

    过程:

      基本环境弄好后,代码就是search_jump的像素识别(大小为模拟器或手机界面大小),在一定范围内进行点击,然后循环点击即可,感觉可以用到其他APP上面(比如全名K歌签到领取鲜花等等)或者服务器上装一个windows系统,这样就可以一直跑了.

    注意:并不是只有一个automain.py代码,其中涉及到其他文件夹下的函数调用,主要就是模拟点击功能的实现吧。

    这次情况特殊,代码不能开源呀,因为是同学写的,我只是参考一下,给出同学分享的下载链接吧:

      陈想大佬源代码: https://download.csdn.net/download/cx776474961/10720126?tdsourcetag=s_pctim_aiomsg

    我这里给出部分代码吧:

    

#点击放回按钮,而不是再来一局
def search_jump(im):
  w, h = im.size

  jump_start_x = int(w * 4 / 5)
  jump_start_y = int(h * 4 / 5)
  im_pixel = im.load()

  for i in range(w - 10, jump_start_x, -10):
    for j in range(h - 5, jump_start_y, -10):
      pixel = im_pixel[i, j]
      # 以按钮颜色查找,可能bug(颜色识别错误)
      if pixel[0] > 220 and pixel[1] > 220 and pixel[2] > 220:
        x = random.uniform(i - 10, i)
        y = random.uniform(j - 20, j)
        return int(x), int(y)
  # return int(w / 2),int(h / 2)
  return 0, 0

  

  2.爬取图片和验证码(次要)

    识别官网API接口即可,然后简单处理信息,对于爬虫还算一个比较好的入门,给出完整代码

picture.py代码

    

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 
# @Time : 2018/9/24 17:11
# @Author : Empirefree
# @File : 爬取照片.py
# @Software: PyCharm
import requests
import os
from urllib.request import urlretrieve


def download(url):
	headers = {
				‘Accept-Charset‘: ‘UTF-8‘,
				‘Accept-Encoding‘: ‘gzip, deflate‘,
				‘Connection‘: ‘Keep-Alive‘
				}
	res = requests.get(url, headers=headers).json()
	hero_num = len(res[‘list‘])
	print(‘[Hero Num]:%d‘ % hero_num)
	for hero in res[‘list‘]:
		pic_url = hero[‘cover‘]
		hero_name = hero[‘name‘] + ‘.jpg‘
		filename = ‘./images/‘ + hero_name
		if ‘images‘ not in os.listdir():
			os.makedirs(‘images‘)
		urlretrieve(url=pic_url, filename=filename)
		print(‘[INFO]:Get %s picture...‘ % hero[‘name‘])

if __name__ == ‘__main__‘:
	print(‘**************************************************************************‘)
	print(‘*****************!!!欢迎使用王者荣耀小助手!!!*************************‘)
	print(‘*****************作者:Empirefree                    *********************‘)
	print(‘*****************工具: Pycharm                       *********************‘)
	print(‘*****************时间: 2018/9/24 17:11               *********************‘)
	print(‘**************************************************************************‘)
	download("http://gamehelper.gm825.com/wzry/hero/list?game_id=7622")
	print(‘**************************************************************************‘)
	print(‘照片已下载到您images目录下,请保证有网条件下执行本程序‘)
	print(‘**************************************************************************‘)
	n = input(‘回车结束........‘)

    info.py代码

    

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 
# @Time : 2018/9/24 17:49 
# @Author : Empirefree 
# @File : info.py 
# @Software: PyCharm
import requests
import time


class Spider():
	def __init__(self):
		self.headers = {
					‘Accept-Charset‘: ‘UTF-8‘,
					‘Accept-Encoding‘: ‘gzip, deflate‘,
					‘Connection‘: ‘Keep-Alive‘
					}
		self.weapon_url = "http://gamehelper.gm825.com/wzry/equip/list?game_id=7622"
		self.heros_url = "http://gamehelper.gm825.com/wzry/hero/list?game_id=7622"
		self.hero_url = "http://gamehelper.gm825.com/wzry/hero/detail?hero_id={}"
		print(‘*‘ * 60)
		print(‘[INFO]:王者荣耀助手...‘)
		print(‘[Usage]:请输入英雄ID获取英雄信息...‘)
		print(‘[Author]:Empirefree‘)
		print(‘*‘ * 60)
	# 外部调用函数
	def run(self):
		heroId_exist = self._Get_HeroId()
		heroId = input(‘\nEnter the Hero ID:‘)
		if heroId not in heroId_exist:
			print(‘[Error]:HeroId inexistence...‘)
			return
		weapon_info = self._Get_WeaponInfo()
		self._Get_HeroInfo(weapon_info, heroId)
	# 获得英雄ID
	def _Get_HeroId(self):
		res = requests.get(url=self.heros_url, headers=self.headers)
		heros = res.json()[‘list‘]
		num = 0
		heroId_list = []
		for hero in heros:
			num += 1
			print(‘%sID: %s‘ % (hero[‘name‘], hero[‘hero_id‘]), end=‘\t\t\t‘)
			heroId_list.append(hero[‘hero_id‘])
			if num == 3:
				num = 0
				print(‘‘)
		return heroId_list
	# 获取武器信息
	def _Get_WeaponInfo(self):
		res = requests.get(url=self.weapon_url, headers=self.headers)
		weapon_info = res.json()[‘list‘]
		return weapon_info
	# 获得出装信息
	def _Get_HeroInfo(self, weapon_info, heroId):
		def seek_weapon(equip_id, weapon_info):
			for weapon in weapon_info:
				if weapon[‘equip_id‘] == str(equip_id):
					return weapon[‘name‘], weapon[‘price‘]
			return None
		res = requests.get(url=self.hero_url.format(heroId), headers=self.headers).json()
		print(‘[%s History]: %s‘ % (res[‘info‘][‘name‘], res[‘info‘][‘history_intro‘]))
		num = 0
		for choice in res[‘info‘][‘equip_choice‘]:
			num += 1
			print(‘\n[%s]:\n  %s‘ % (choice[‘title‘], choice[‘description‘]))
			total_price = 0
			for weapon in choice[‘list‘]:
				weapon_name, weapon_price = seek_weapon(weapon[‘equip_id‘], weapon_info)
				print(‘[%s Price]: %s‘ % (weapon_name, weapon_price))
				if num == 3:
					print(‘‘)
					num = 0
				total_price += int(weapon_price)
			print(‘[Ultimate equipment price]: %d‘ % total_price)


if __name__ == ‘__main__‘:
	while True:
		Spider().run()
		time.sleep(5)

    到此算是整理完王者荣耀写过的代码了,QAQ。

Python-王者自动刷金币+爬取英雄信息+图片

标签:tps   RoCE   orm   处理   dom   src   tle   实现   开源   

原文地址:https://www.cnblogs.com/meditation5201314/p/10313676.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!