最简单的python爬虫实战——爬取王者荣耀皮肤及头像
2018-04-11 00:24
441 查看
看到某公众号的一篇非常容易上手的爬虫实例,之前只是模拟登陆过,还没有爬取过数据或者文件,一直没怎么接触过json这个东西,发现也没有那么难上手,233333,总之是一次非常愉快的爬虫经历,简单又简洁的代码,就可以获取到所需要的信息。
urllib库的用法:urllib.request.urlopen() #打开某网址
urllib.request.urlrestrive(url,save_file_name) #将远程数据下载到本地
urlretrieve(url, filename=None, reporthook=None, data=None)
#详细:reporthook,调用函数返回下载进度
#data,post到服务器的数据,该方法返回一个包含两个元素的(filename, headers)元组,filename 表示保存到本地的路径,header 表示服务器的响应头。
reporthook的用法:
def callback(blocknum,blocksize,totalsize) //定义回传的函数函数会传入三个参数:
到现在传输的块数 blocknum.
每一块的大小 blocksize.
文件总大小 totalsize.
json的用法:json.loads() #从json中提取数据, 将str类型的数据转成dict
解决了一些小问题,完整代码就写出来了~#-*- coding:utf-8 -*-
import urllib.request
import json
respond = urllib.request.urlopen("http://pvp.qq.com/web201605/js/herolist.json")
json_hero = json.loads(respond.read().decode('utf-8')) //read()读取网址并解码
hero_num = len(json_hero)
def callback(blocknum,blocksize,totalsize):
percent = 100.0*blocknum*blocksize/totalsize
if percent > 100:
percent = 100
print("percent:", percent)
for i in range(hero_num):
skin_names = json_hero[i]['skin_name'].split('|')
hero_name = json_hero[i]['ename']
skin_num = len(skin_names)
print(hero_name, skin_names, skin_num)
for i in range(hero_num): //下载头像
save_file_name = 'D:\wangzhetouxiang\\' + str(json_hero[i]['ename']) + '.jpg'
url = ('http://game.gtimg.cn/images/yxzj/img201606/heroimg/' + str(json_hero[i]['ename']) + '/'
+ str(json_hero[i]['ename']) + '.jpg')
urllib.request.urlretrieve(url, save_file_name, callback)
urllib库的用法:urllib.request.urlopen() #打开某网址
urllib.request.urlrestrive(url,save_file_name) #将远程数据下载到本地
urlretrieve(url, filename=None, reporthook=None, data=None)
#详细:reporthook,调用函数返回下载进度
#data,post到服务器的数据,该方法返回一个包含两个元素的(filename, headers)元组,filename 表示保存到本地的路径,header 表示服务器的响应头。
reporthook的用法:
def callback(blocknum,blocksize,totalsize) //定义回传的函数函数会传入三个参数:
到现在传输的块数 blocknum.
每一块的大小 blocksize.
文件总大小 totalsize.
json的用法:json.loads() #从json中提取数据, 将str类型的数据转成dict
解决了一些小问题,完整代码就写出来了~#-*- coding:utf-8 -*-
import urllib.request
import json
respond = urllib.request.urlopen("http://pvp.qq.com/web201605/js/herolist.json")
json_hero = json.loads(respond.read().decode('utf-8')) //read()读取网址并解码
hero_num = len(json_hero)
def callback(blocknum,blocksize,totalsize):
percent = 100.0*blocknum*blocksize/totalsize
if percent > 100:
percent = 100
print("percent:", percent)
for i in range(hero_num):
skin_names = json_hero[i]['skin_name'].split('|')
hero_name = json_hero[i]['ename']
skin_num = len(skin_names)
print(hero_name, skin_names, skin_num)
for i in range(hero_num): //下载头像
save_file_name = 'D:\wangzhetouxiang\\' + str(json_hero[i]['ename']) + '.jpg'
url = ('http://game.gtimg.cn/images/yxzj/img201606/heroimg/' + str(json_hero[i]['ename']) + '/'
+ str(json_hero[i]['ename']) + '.jpg')
urllib.request.urlretrieve(url, save_file_name, callback)
for i in range(hero_num): //下载皮肤 skin_names = hero_json[i]['skin_name'].split('|') for cnt in range(len(skin_names)): save_file_name = ('D:\wangzhe\\' + str(hero_json[i]['ename']) + '-' + hero_json[i]['cname'] + '-' + skin_names[cnt] + '.jpg') skin_url = ('http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/' + str(hero_json[i]['ename']) + '/' + str(hero_json[i]['ename']) + '-bigskin-' + str(cnt+1) + '.jpg') urllib.request.urlretrieve(skin_url, save_file_name)
相关文章推荐
- python爬虫实战之最简单的网页爬虫教程
- 实践项目十:爬取百度百科Python词条相关1000个页面数据(慕课简单爬虫实战)
- Python爬虫简单实战,58同城西安二手笔电
- Python爬虫之一:十几行代码下载王者荣耀所有皮肤
- Python爬虫实战(十一):两种简单的方法爬取动态网页
- Python爬虫实战之爬取链家广州房价_01简单的单页爬虫
- Python 爬虫简单实战之CSDN
- python开发简单爬虫:实战篇
- Python爬虫实战入门二:从一个简单的HTTP请求开始
- Python爬虫实战(三):简单爬取网页图片
- Python爬虫实战入门三:简单的HTML解析——爬取腾讯新闻
- python3.5简单爬虫爬取百度百科(参考imooc实战)
- Python开发简单爬虫之实战演练
- Python爬虫简单实战:抓取小猪短租西安市前五页民房数据
- python3爬虫超简单实例
- python——简单爬虫
- Python实现抓取页面上链接的简单爬虫分
- python爬虫入门 实战(二)---爬百度贴吧
- Python简单爬虫
- python爬虫入门 实战(三)---爬网易云音乐热门评论