记一次 爬取LOL全皮肤原画保存到本地的实例

 1 #爬取lol全英雄皮肤
 2 import re
 3 import traceback #  异常跟踪
 4 import requests
 5 from bs4 import BeautifulSoup
 6 #获取html
 7 def get_url(url, hander):
 8     try:
 9         r = requests.get(url, headers=hander, timeout=30)
10         r.raise_for_status()
11         r.encoding = r.apparent_encoding
12         return r.text
13     except:
14         traceback.print_exc() #将异常信息打印出来
15         return ""
16 #解析html
17 def prasing_page(lst,html):
18     try:
19         soup = BeautifulSoup(html, "html.parser")
20         for a in soup.find_all(‘li‘, class_=re.compile(‘boxShadow‘)):
21             tag_a = a(‘a‘)
22             for i in tag_a:
23                 lst.append(i[‘href‘])
24         return lst
25     except:
26         traceback.print_exc()
27         return ""

28 #解析获取到的单个html并筛选和下载
29 def getUrl_prasingpag(lst, hander):
30     hero_img_url = []
31     hero_skin_name = []
32     hero_name = []
33     for u in lst:
34         try:
35             r = requests.get(u, headers=hander, timeout=30)
36             r.raise_for_status()
37             r.encoding = r.apparent_encoding
38        #二次解析
39             soup = BeautifulSoup(r.text, "html.parser")
40             pag = soup.find_all(‘div‘, class_=re.compile(‘othersPifuBox‘))
41             for m in pag:
42                 tag_img = m(‘img‘)
43                 tag_p = m(‘p‘)
44                 tag_span = m(‘span‘)
45                 for m in tag_p:
46                     hero_skin_name.append(m.string)
47                 for m in tag_img:
48                     hero_img_url.append(m[‘src‘])
49                 for m in tag_span:
50                     hero_name.append(m.string)
51         except:
52             traceback.print_exc()  # 将异常信息打印出来
53             continue
54               #下载到本地
55         for i in range(len(hero_name)):
56             try:
57                 path = ‘O:/lol_hero_jpg/‘ + hero_skin_name[i]+‘--‘ + hero_name[i] + ‘.jpg‘
58                 f = open(path, ‘wb‘)
59                 r = requests.get(hero_img_url[i], stream=True)
60                 f.write(r.content)
61                 print("\r当前进度>>>>>>>>>>>>>>>>>>{:.0f}%>>>>>>>>>>>>>>>>>>".format(i * 100 / len(lst)), end="")
62                 f.close()
63             except:
64                 traceback.print_exc()  # 将异常信息打印出来
65                 continue
66
67 def main():
68     hander = {"User-Agent":"Mozilla/5.0"}
69     deep = 43 #定义爬取页数
70     list = []
71     for i in range(deep):
72         try:
73             url = "http://********/hero_"+str(1+i)+".shtml"
74             html = get_url(url, hander)
75             prasing_page(list, html)
76             getUrl_prasingpag(list, hander)
77         except:
78             continue
79
80 main()

原文地址:https://www.cnblogs.com/llww/p/12149699.html

时间: 2024-10-28 09:45:35

记一次 爬取LOL全皮肤原画保存到本地的实例的相关文章

python爬取某个网站的图片并保存到本地

python爬取某个网站的图片并保存到本地 #coding:utf-8 import urllib import re import sys reload(sys) sys.setdefaultencoding('gb2312') #获取整个页面的数据 def getHtml (url): page = urllib.urlopen(url) html = page.read() return html #保存图片到本地 def getImg(html): reg = r'src="(.+?\.

使用scrapy框架爬取蜂鸟论坛的摄影图片并下载到本地

目标网站:http://bbs.fengniao.com/使用框架:scrapy 因为有很多模块的方法都还不是很熟悉,所有本次爬虫有很多代码都用得比较笨,希望各位读者能给处意见 首先创建好爬虫项目,并使用crawl模板创建爬虫文件 通过观察论坛的规律得出,很多贴子的页数往往大于一页,那么要将贴子里各页的图片下载到同一文件夹内,并且不能重名,就是获取到当前的页码数,已页码数+自然数的方式命令文件.发现scrapy自动爬虫会爬很多重复的页面,度娘后得出两个解决方法,第一个是用布隆过滤器,布隆过滤器相

scrapy框架来爬取壁纸网站并将图片下载到本地文件中

首先需要确定要爬取的内容,所以第一步就应该是要确定要爬的字段: 首先去items中确定要爬的内容 class MeizhuoItem(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field() # 图集的标题 title = scrapy.Field() # 图片的url,需要来进行图片的抓取 url = scrapy.Field() pass 在确定完要爬的字段之后,就是分析网站页面的请求

爬虫爬取《全职法师》并保存到本地

同学想看全职法师,但是又不想看广告 让我帮他写一个爬虫~~ 首先找一个看起来很好爬的网站:https://www.50zw.co/ 找到全职法师,遇到的第一个问题就是编码的问题,明明网站上显示是utf-8,但是爬下来就是乱码,hin奇怪 折腾许久,终于找到解决方法: r=requests.get(url) r.encoding='gb2312'#解决中文不能正常显示 现在终于可以愉快的爬虫了 这里还有一个问题,就是爬下来的数据将每一段的换行符认成了乱码:      我看它网站的结构相当清晰,那就

用Python3Request爬取英雄联盟皮肤、单线程爬取

和王者荣耀相类似 链接:https://www.cnblogs.com/wxzbk/p/10981098.html """ Hero_LOL """ import requests import re import threading def hero(hero_name, hero_num): #统一前戳 h_l = "https://ossweb-img.qq.com/images/lol/web201310/skin/big&qu

Python爬虫爬取深大信息工程学院老师个人介绍网址小实例

1 #-*-coding:utf-8-*- 2 3 import requests 4 5 from bs4 import BeautifulSoup 6 7 r = requests.get ('http://cie.szu.edu.cn/szucie/index.php/category/jsfc/') 8 9 #返回的'r'是一个包含了整个HTTP协议需要的各种各样东西的对象 10 11 html = r.content 12 13 #获取网页源代码 14 15 soup = Beauti

爬取google的搜索结果并保存

demo: #coding:utf-8 import requests from bs4 import BeautifulSoup import bs4 import re def getHTMLText(url): try: r=requests.get(url,timeout=30) r.raise_for_status() r.encoding=r.apparent_encoding return r.text except: return '' def fillList(ulist,ht

使用Httpclient实现网页的爬取并保存至本地

程序功能实现了爬取网页页面并且将结果保存到本地,通过以爬取页面出发,做一个小的爬虫,分析出有利于自己的信息,做定制化的处理. 其中需要的http*的jar文件,可以在网上自行下载 import java.io.DataOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import org.apache

基本文件处理-爬取豆瓣电影排行榜

目录 文件的类型 什么是文件? 文件的分类 文件的打开与关闭 文件处理的三个步骤 使用方式 爬虫 requests库的使用 文件的类型 什么是文件? 一堆.py/.txt 存储着文字信息文件, 文件的分类 二进制文件:由0.1组成,例如.png文件 文本文件:由单一特定编码组成的文件,如utf8,例如 .txt文件 文件的打开与关闭 文件处理的三个步骤 打开(找到路径打开) 打开模式 描述 r 只读不可写 w 只写不可读(会清空文件) a 追加不可读 r+ 可读可写 w+ 可读可写(会清空文件)