利用爬虫爬取LOL官网上皮肤图片
2019-11-16 22:09
537 查看
今天在浏览网页时,看到一篇很有意思的文章,关于网络爬虫的。该文章是讲述如何利用request爬取英雄联盟官网皮肤图片。看过文章后觉得挺有用的,把代码拿过来运行了一下,果真爬取成功。下面给大家分享一下代码。
首先得利用cmd命令指示符安装requests库,json,re,time。
安装完成后,第一步是获取英雄ID从而为先面判决URL作准备。
def getLOLImages(): header = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.62 Safari/537.36'} url_js = 'http://lol.qq.com/biz/hero/champion.js' #获取JS源代码 Str bytes res_js = requests.get(url_js).content #转码 转成字符串 html_js = res_js.decode() #正则表达式 req = '"keys":(.*?),"data"' list_js = re.findall(req,html_js) #转成dict dict_js = json.loads(list_js[0]) # print(type(dict_js)) #定义图片列表 pic_list = [] for key in dict_js: # print(key)#英雄ID
第二步就是拼接URL了,通过发现英雄皮肤url的取名方式,我们可以方向最后的数字是不同的。让后通过此方法来获取图片地址。
for i in range(20): number = str(i) if len(number) == 1: hero_num = "00"+number elif len(number) == 2: hero_num = "0"+number numstr = key+hero_num url = "http://ossweb-img.qq.com/images/lol/web201310/skin/big"+numstr+".jpg" #http://ossweb-img.qq.com/images/lol/web201310/skin/big81000.jpg pic_list.append(url)
第三步是获取图片名称,path那行是放置图片的地址,注意结尾的\\不能丢。
list_filepath = [] path = "D:\Pycharmdaima\Pachong\LOLTU\\" for name in dict_js.values(): for i in range(20): file_path = path+name+str(i)+'.jpg' list_filepath.append(file_path)
第四步就是下载图片了。
n = 0 for picurl in pic_list: res = requests.get(picurl) n += 1 #获取状态码 if res.status_code == 200: print("正在下载%s"%list_filepath ) time.sleep(1) with open(list_filepath ,'wb') as f: f.write(res.content)
最后,调用一下getLOLImages()方法
getLOLImages()
注意,我第一次用了源码,后来发现运行太慢,检查一下源码后发现代码末尾调用了一个time.sleep()方法。这样是为了限制爬取速度,避免速度过快被网站发现而中断。经过调试,我中途暂停代码运行,将sleep()方法注释掉,爬取速度果然加快,而且没有中断。
下面是我的爬取成果:
相关文章推荐
- python利用urllib实现爬取京东网站商品图片的爬虫实例
- python爬虫——利用百度搜索引擎爬取所需图片
- python网络爬虫学习(六)利用Pyspider+Phantomjs爬取淘宝模特图片
- python实践——《英雄联盟》英雄及皮肤图片的爬虫
- LOL全英雄皮肤爬虫
- 利用爬虫多线程下载可爱妹子图片
- Py之Crawler:爬虫利用随机选取代理访问服务器的方法实现下载某网址上所有的图片到指定文件夹——Jason niu
- 利用urllib+beadutifulsoup编写自己的第一个小爬虫,获取美女图片
- 爬虫 利用图片下载地址 postman生成md5
- Python初级爬虫(利用多任务协程爬取虎牙MM图片)
- 利用爬虫下载图片
- python爬虫:利用Requests和BeautifulSoup爬取百度贴吧多页图片
- 爬虫之爬取斗鱼官网LOL部分主播的状态
- [Python爬虫] 之二十六:Selenium +phantomjs 利用 pyquery抓取智能电视网站图片信息
- 利用Python爬虫批量下载百度图库图片
- 学习小记 - Python爬虫 (3) 利用Python爬取wanimal所有图片
- Python3爬虫抓取TP官网案例图片
- 利用爬虫爬出17173.com的lol英雄数据
- 利用爬虫爬取清纯妹子图片
- Python爬虫——利用PhantomJS下载动态加载图片