python爬取守望先锋英雄图片以及描述
先爬取英雄图片
导入库
import requests
import re
from bs4 import BeautifulSoup
import urllib
爬取网页html
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36 Edg/94.0.992.47'}
def get_html(url): # 模拟浏览器访问response = requests.get(url, headers=headers) # 访问网站response.encoding = response.apparent_encoding #字符编码格式html = response.text # 获取网页源码return html
再找出html里面所有以png结尾的图片链接,保存到本地
r = get_html('https://ow.blizzard.cn/heroes/')
bs=BeautifulSoup(r,'html.parser')
#正则表达式爬取img以png结尾的链接
img_urls=bs.find_all('img', {'src': re.compile('.+(.png)$')})
for i in range(len(img_urls)):url = img_urls[i]['src']# 下载图片urllib.request.urlretrieve(url, 'C:/Users/15584/Desktop/overwatch/picture/' +"hero"+str(i) + '.jpg')
再获取每个英雄的具体描述。
首先找出所有的内链接并且以/heroes开头
#正则表达式爬取以/heroes开头的内链接
for link in bs.find_all('a',href=re.compile('^((\/heroes.))')):a.append(link.text)if 'href' in link.attrs:b.append(link['href'])
再访问内链接,找出所有的p标签
url="https://ow.blizzard.cn"
for link1 in b:c.append(url+link1)
for link2 in c:r1 = get_html(link2)bs1=BeautifulSoup(r1,'html.parser')#print(bs1.p.text)d.append(bs1.find_all('p'))
再对找出来的p标签进行去除多余的html
for content in d:content = str(content)# 使用正则表达式匹配找到的文本内容中的所有<.*?>的标签pattern = re.compile(r'<.*?>|\n|\s', re.S)# 将匹配到的内容用空来替换content_list = pattern.sub('', content)e.append(content_list)
#删除列表中第一个元素
最后保存为文件
#删除列表中第一个元素
del(e[0])
#依次保存文件
for j in range(len(e)): with open("C:\\Users\\15584\\Desktop\\overwatch\\hero describe\\"+"hero"+str(j)+'.txt', mode='w', encoding='utf-8') as f:f.write(e[j])
结果展示如下:
会在overwatch下产生两个文件夹
产看picture为英雄图片,hero describe为英雄描述
随机查看一个英雄的描述
完整代码如下:
(代码比较粗糙,还需后期修改)
import requests
import re
from bs4 import BeautifulSoup
import urllib
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36 Edg/94.0.992.47'}
def get_html(url): # 模拟浏览器访问response = requests.get(url, headers=headers) # 访问网站response.encoding = response.apparent_encoding #字符编码格式html = response.text # 获取网页源码return html
a=[]
b=[]
c=[]
d=[]
e=[]
r = get_html('https://ow.blizzard.cn/heroes/')
bs=BeautifulSoup(r,'html.parser')
#正则表达式爬取img以png结尾的链接
img_urls=bs.find_all('img', {'src': re.compile('.+(.png)$')})
for i in range(len(img_urls)):url = img_urls[i]['src']# 下载图片urllib.request.urlretrieve(url, 'C:/Users/15584/Desktop/overwatch/picture/' +"hero"+str(i) + '.jpg')
#正则表达式爬取以/heroes开头的内链接
for link in bs.find_all('a',href=re.compile('^((\/heroes.))')):a.append(link.text)if 'href' in link.attrs:b.append(link['href'])
url="https://ow.blizzard.cn"
for link1 in b:c.append(url+link1)
for link2 in c:r1 = get_html(link2)bs1=BeautifulSoup(r1,'html.parser')#print(bs1.p.text)d.append(bs1.find_all('p'))
for content in d:content = str(content)# 使用正则表达式匹配找到的文本内容中的所有<.*?>的标签pattern = re.compile(r'<.*?>|\n|\s', re.S)# 将匹配到的内容用空来替换content_list = pattern.sub('', content)e.append(content_list)
#删除列表中第一个元素
del(e[0])
#依次保存文件
for j in range(len(e)): with open("C:\\Users\\15584\\Desktop\\overwatch\\hero describe\\"+"hero"+str(j)+'.txt', mode='w', encoding='utf-8') as f:f.write(e[j])
python爬取守望先锋英雄图片以及描述相关推荐
- Python爬取王者荣耀英雄图片及装备
在玩王者荣耀的时候一直想把装备合英雄的图片保存下来,但是官网的单个图片保存太慢一气之下写了个爬虫. 1.爬取装备 import requests from bs4 import BeautifulSo ...
- Python爬取王者荣耀英雄的皮肤数据并下载皮肤图片项目
Python爬取王者荣耀英雄的皮肤数据,并下载皮肤图片!高清的图片用来做桌面也不错哟~ 网址:https://pvp.qq.com/web201605/herolist.shtml 1.获得英雄信息, ...
- 教你用python爬取王者荣耀英雄皮肤图片,并将图片保存在各自英雄的文件夹中。(附源码)
教你用python爬取王者荣耀英雄皮肤图片,并将图片保存在各自英雄的文件夹中.(附源码) 代码展示: 保存在各自的文件夹中 美么? 让我们开始爬虫之路 开发环境 windows 10 python3. ...
- Python爬取 | 王者荣耀英雄皮肤海报
这里只展示代码,具体介绍请点击下方链接. Python爬取 | 王者荣耀英雄皮肤海报 import requests import re import os import time import wi ...
- python爬取图片-Python爬取网页中的图片(搜狗图片)详解
前言 最近几天,研究了一下一直很好奇的爬虫算法.这里写一下最近几天的点点心得.下面进入正文: 你可能需要的工作环境: Python 3.6官网下载 本地下载 我们这里以sogou作为爬取的对象. 首先 ...
- Java爬虫 --- 爬取王者荣耀英雄图片
Java爬虫 - 爬取王者荣耀英雄图片 import org.jsoup.Connection; import org.jsoup.Jsoup; import org.jsoup.nodes.Docu ...
- Python 爬取陈都灵百度图片
Python 爬取陈都灵百度图片 标签(空格分隔): 随笔 今天意外发现了自己以前写的一篇爬虫脚本,爬取的是我的女神陈都灵,尝试运行了一下发现居然还能用.故把脚本贴出来分享一下. import req ...
- 用Python爬取彼岸图网图片
用Python爬取彼岸图网图片 *使用了 四个模块 import time import requests from lxml import etree import os 没有的话自行百度安装. ...
- python如何爬取网页视频_快就完事了!10分钟用python爬取网站视频和图片
原标题:快就完事了!10分钟用python爬取网站视频和图片 话不多说,直接开讲!教你如何用Python爬虫爬取各大网站视频和图片. 638855753 网站分析: 我们点视频按钮,可以看到的链接是: ...
- Python爬取国家地理杂志的图片
一.简介:Python爬取国家地理杂志的图片 二.代码展示 from bs4 import BeautifulSoup import requests import osos.mkdir('./img ...
最新文章
- Python3 pathlib让编程更美好
- STM32F405的 ADC参考电压选择问题
- “阿里云 Cloud AIoT Native” 等你一“名”惊人
- leetcode24题:两两交换链表的节点
- 【文文殿下】Manache算法-学习笔记
- Ajax与Comet
- 如何在 Windows Server 2003 中配置权威时间服务器
- 转自 方倍工作室微信公众平台开发
- 【Git项目管理工具推荐】Sourcetree、Sourcegear-DiffMerge
- 有一种毒药叫成功---成功学的泛滥与迷失
- 用STEP7-MicroWIN SMART能搜索到CPU 也能控制PLC指示灯闪烁,但是下载程序仍提示当前IP地址失败请检查IP地址、网络连接
- hp 800 g4 twr linux,【拆机】HP EliteDesk 800 G4 TWR—探究塔式机箱的秘密
- 如何利用 C# 爬取「猫眼电影:国内票房榜」及对应影片信息!
- html怎么做下雨效果,Canvas制作的下雨动画的示例
- 终于有人把TCP/IP讲的明明白白了,搞懂真的不难,只需要看这一篇就够了
- 关于向上转型和向下转型
- android studio模拟手机黑屏,Android Studio 模拟器启动问题——黑屏 死机 解决方法...
- 【力扣】729. 我的日程安排表 I
- scp:windows与linux之间copy文件(类似于linux的scp工具)
- 如何把html5设置为桌面背景,怎么将照片设置为电脑桌面