记一次 爬取LOL全皮肤原画保存到本地的实例
#爬取lol全英雄皮肤
import re
import traceback # 异常跟踪
import requests
from bs4 import BeautifulSoup
#获取html
def get_url(url, hander):
try:
r = requests.get(url, headers=hander, timeout=30)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
except:
traceback.print_exc() #将异常信息打印出来
return ""
#解析html
def prasing_page(lst,html):
try:
soup = BeautifulSoup(html, "html.parser")
for a in soup.find_all('li', class_=re.compile('boxShadow')):
tag_a = a('a')
for i in tag_a:
lst.append(i['href'])
return lst
except:
traceback.print_exc()
return ""
#解析获取到的单个html并筛选和下载
def getUrl_prasingpag(lst, hander):
hero_img_url = []
hero_skin_name = []
hero_name = []
for u in lst:
try:
r = requests.get(u, headers=hander, timeout=30)
r.raise_for_status()
r.encoding = r.apparent_encoding
#二次解析
soup = BeautifulSoup(r.text, "html.parser")
pag = soup.find_all('div', class_=re.compile('othersPifuBox'))
for m in pag:
tag_img = m('img')
tag_p = m('p')
tag_span = m('span')
for m in tag_p:
hero_skin_name.append(m.string)
for m in tag_img:
hero_img_url.append(m['src'])
for m in tag_span:
hero_name.append(m.string)
except:
traceback.print_exc() # 将异常信息打印出来
continue
#下载到本地
for i in range(len(hero_name)):
try:
path = 'O:/lol_hero_jpg/' + hero_skin_name[i]+'--' + hero_name[i] + '.jpg'
f = open(path, 'wb')
r = requests.get(hero_img_url[i], stream=True)
f.write(r.content)
print("\r当前进度>>>>>>>>>>>>>>>>>>{:.0f}%>>>>>>>>>>>>>>>>>>".format(i * 100 / len(lst)), end="")
f.close()
except:
traceback.print_exc() # 将异常信息打印出来
continue
def main():
hander = {"User-Agent":"Mozilla/5.0"}
deep = 43 #定义爬取页数
list = []
for i in range(deep):
try:
url = "http://********/hero_"+str(1+i)+".shtml"
html = get_url(url, hander)
prasing_page(list, html)
getUrl_prasingpag(list, hander)
except:
continue
main()
记一次 爬取LOL全皮肤原画保存到本地的实例的更多相关文章
- python爬取某个网站的图片并保存到本地
python爬取某个网站的图片并保存到本地 #coding:utf- import urllib import re import sys reload(sys) sys.setdefaultenco ...
- 爬取博主所有文章并保存到本地(.txt版)--python3.6
闲话: 一位前辈告诉我大学期间要好好维护自己的博客,在博客园发布很好,但是自己最好也保留一个备份. 正好最近在学习python,刚刚从py2转到py3,还有点不是很习惯,正想着多练习,于是萌生了这个想 ...
- 如何优雅的爬取 gzip 格式的页面并保存在本地(java实现)
1. 引言 在爬取汽车销量数据时需要爬取 html 保存在本地后再做分析,由于一些页面的 gzip 编码格式, 获取后要先解压缩,否则看到的是一片乱码.在网络上仔细搜索了下,终于在这里找到了一个优雅的 ...
- Python爬取LOL英雄皮肤
Python爬取LOL英雄皮肤 Python 爬虫 一 实现分析 在官网上找到英雄皮肤的真实链接,查看多个后发现前缀相同,后面对应为英雄的ID和皮肤的ID,皮肤的ID从00开始顺序递增,而英雄ID跟 ...
- Python3爬虫使用requests爬取lol英雄皮肤
本人博客:https://xiaoxiablogs.top 此次爬取lol英雄皮肤一共有两个版本,分别是多线程版本和非多线程版本. 多线程版本 # !/usr/bin/env python # -*- ...
- python网络图片爬取存储全代码
#图片爬取全代码import requestsimport osurl = "https://timgsa.baidu.com/timg?image&quality=80&s ...
- 爬取表格类网站数据并保存为excel文件
本文转载自以下网站:50 行代码爬取东方财富网上市公司 10 年近百万行财务报表数据 https://www.makcyun.top/web_scraping_withpython6.html 主要学 ...
- 使用Python爬取微信公众号文章并保存为PDF文件(解决图片不显示的问题)
前言 第一次写博客,主要内容是爬取微信公众号的文章,将文章以PDF格式保存在本地. 爬取微信公众号文章(使用wechatsogou) 1.安装 pip install wechatsogou --up ...
- scrapy框架来爬取壁纸网站并将图片下载到本地文件中
首先需要确定要爬取的内容,所以第一步就应该是要确定要爬的字段: 首先去items中确定要爬的内容 class MeizhuoItem(scrapy.Item): # define the fields ...
随机推荐
- spring配置文件各个属性详解
一.引用外部属性文件 <bean id="propertyConfigurer" class="org.springframework.beans.factory. ...
- Python的unittest拓展和HTMLReport SKIP报表扩展
C:\Python27\Lib中修改unittest内容 unittest 在init中添加Myskip代码: __all__ = ['TestResult', 'TestCase', 'TestSu ...
- BLOB类型对应Long binary,CLOB对应Long characters
BLOB类型对应Long binary,CLOB对应Long characters
- Bert系列(三)——源码解读之Pre-train
https://www.jianshu.com/p/22e462f01d8c pre-train是迁移学习的基础,虽然Google已经发布了各种预训练好的模型,而且因为资源消耗巨大,自己再预训练也不现 ...
- 你看Http的 三次握手
你看Http的 三次握手 按层次分,TCP位于传输层,而且TCP协议能够确认数据是否送达到对方,所以在客户端请求资源的时候,你得让俺知道咱俩关系是不是已经确定了啊,对不.这跟谈恋爱一样一样的,得先确定 ...
- Centos下添加用户到用户组
将一个用户添加到用户组中,千万不能直接用: usermod -G groupA 这样做会使你离开其他用户组,仅仅做为 这个用户组 groupA 的成员. 应该用 加上 -a 选项: usermod - ...
- LuaForWindows_v5.1.4-45和lua-5.1.4.tar.gz
Lua学习笔记(一) 安装调试环境 Lua学习笔记(一) 安装调试环境 觉得自己是该掌握一门脚本语言的时候了,虽然曾经用过C# 和JavaScript 写过Unity3D的脚本.但是,总觉得那 ...
- [转]C# 语言历史版本特性(C# 1.0到C# 8.0汇总)
历史版本 C#作为微软2000年以后.NET平台开发的当家语言,发展至今具有17年的历史,语言本身具有丰富的特性,微软对其更新支持也十分支持.微软将C#提交给标准组织ECMA,C# 5.0目前是ECM ...
- UA判断打开页面的环境,然后在callBack写相应环境下的回调函数
这是js代码 /* * 2016.11.10 * SunJingxin * V 1.0.0 * */ (function(){ /* * 使用方法: * 一.引入ua.js * 二.直接调用 Mobi ...
- Python--day63--图书管理系统表结构设计
pycharm中运行manage.py的工具: 1,将变更翻译成SQL语句,去数据库中执行(ORM操作过数据库后都要执行这两条命令) 2,ForeignKey会自动在属性后面加_id 3,ORM封装p ...