简单来说网络爬虫,是指抓取万维网信息的程序或者脚本,Python在网络爬虫有很大优势,今天我们用Python实现获取王者荣耀相关数据,做一个小助手:
前期准备,环境搭建:
Python2.7
sys模块提供了许多函数和变量来处理 Python 运行时环境的不同部分;
urllib模块提供了一系列用于操作URL的功能,爬虫所需要的功能,基本上在urllib中都能找到,学习这个标准库,可以更加深入的理解后面更加便利的requests库;
requests是python实现的简单易用的HTTP库,使用起来比urllib简洁很多,因为是第三方库,所以使用前需要cmd命令安装,pip install requests ;
Python在GUI编程实现图形界面,Python 提供了多个图形开发界面的库,Tkinter,tkMessageBox;
首先获取英雄图片,代码如下:
# -*- coding: utf-8 -*-
#!/usr/bin/env python
# @Time : 2018/6/15 17:12
# @Desc :
# @File : KingGlory.py
# @Software: PyCharm
"""
导入库
"""
import urllib
import requests,sys
"""
统一编码
"""
reload(sys)
sys.setdefaultencoding('utf-8')
"""
获取英雄图片
"""
def DownloadHeroImage(url):
req=requests.get(url=url).json()
HeroNum=len(req['list'])
print "一共有%d个英雄"%HeroNum
HeroImagesPath="HeroiImages"
HeroList=req['list']
for Hero in HeroList:
HeroImageUrl=Hero['cover']
HeroName=Hero['name']+".jpg"
FileName=HeroImagesPath+"/"+HeroName
print "正在下载%s的图片"%Hero['name']
urllib.urlretrieve(url=HeroImageUrl, filename=FileName)
执行方法如下:
if __name__ == '__main__':
# 英雄列表URL地址
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"
DownloadHeroImage(heros_url)
执行结果如下: