简单来说网络爬虫,是指抓取万维网信息的程序或者脚本,Python在网络爬虫有很大优势,今天我们用Python实现获取王者荣耀相关数据,做一个小助手:
前期准备,环境搭建:
Python2.7
sys模块提供了许多函数和变量来处理 Python 运行时环境的不同部分;
urllib模块提供了一系列用于操作URL的功能,爬虫所需要的功能,基本上在urllib中都能找到,学习这个标准库,可以更加深入的理解后面更加便利的requests库;
requests是python实现的简单易用的HTTP库,使用起来比urllib简洁很多,因为是第三方库,所以使用前需要cmd命令安装,pip install requests ;
Python在GUI编程实现图形界面,Python 提供了多个图形开发界面的库,Tkinter,tkMessageBox;
首先获取英雄图片,代码如下:
1# -*- coding: utf-8 -*- 2#!/usr/bin/env python 3# @Time : 2018/6/15 17:12 4# @Desc : 5# @File : KingGlory.py 6# @Software: PyCharm 7""" 8导入库 9""" 10import urllib 11import requests,sys 12""" 13统一编码 14""" 15reload(sys) 16sys.setdefaultencoding('utf-8') 17 18""" 19获取英雄图片 20""" 21def DownloadHeroImage(url): 22 req=requests.get(url=url).json() 23 HeroNum=len(req['list']) 24 print "一共有%d个英雄"%HeroNum 25 HeroImagesPath="HeroiImages" 26 HeroList=req['list'] 27 for Hero in HeroList: 28 HeroImageUrl=Hero['cover'] 29 HeroName=Hero['name']+".jpg" 30 FileName=HeroImagesPath+"/"+HeroName 31 print "正在下载%s的图片"%Hero['name'] 32 urllib.urlretrieve(url=HeroImageUrl, filename=FileName) 33 34 执行方法如下: 35 36if __name__ == '__main__': 37 # 英雄列表URL地址 38 heros_url = "http://gamehelper.gm825.com/wzry/hero/list?channel_id=90009a&app_id=h9044j&game_id=7622&game_name=%E7%8E%8B%E8%80%85%E8%8D%A3%E8%80%80&vcode=12.0.3&version_code=1203&cuid=2654CC14D2D3894DBF5808264AE2DAD7&ovr=6.0.1&device=Xiaomi_MI+5&net_type=1&client_id=1Yfyt44QSqu7PcVdDduBYQ%3D%3D&info_ms=fBzJ%2BCu4ZDAtl4CyHuZ%2FJQ%3D%3D&info_ma=XshbgIgi0V1HxXTqixI%2BKbgXtNtOP0%2Fn1WZtMWRWj5o%3D&mno=0&info_la=9AChHTMC3uW%2BfY8%2BCFhcFw%3D%3D&info_ci=9AChHTMC3uW%2BfY8%2BCFhcFw%3D%3D&mcc=0&clientversion=&bssid=VY%2BeiuZRJ%2FwaXmoLLVUrMODX1ZTf%2F2dzsWn2AOEM0I4%3D&os_level=23&os_id=dc451556fc0eeadb&resolution=1080_1920&dpi=480&client_ip=192.168.0.198&pdunid=a83d20d8" 39 DownloadHeroImage(heros_url)
执行结果如下: