python爬虫工程师 成长之路十 selenium+phantomjs+request爬取lol所有英雄头像和装备图片
文章目录
- 爬取所有英雄头像
- 选择爬取目标
- 寻找图片位置
- 引入selenium和phantomjs
- 构造xpath对元素定位
- 获取每个英雄的名字和头像url
- 最终步骤
- 爬取装备图片
- 最后
爬取所有英雄头像
选择爬取目标
这里我们选择
https://lol.qq.com/data/info-heros.shtml
英雄联盟英雄资料
寻找图片位置
通过浏览器的检查功能,寻找图片所在位置
观察发现所有英雄头像都处于"<img src="">"里面
所以,构建正则表达式如下
pattern1='<img src="(.+?)">'
是不是觉得腾讯的东西太简单了?其实,你一爬就会发现根本没有图片后面我发现这里使用的是js动态加载的
经过我反复琢磨,终于发现资源文件都在//lol.qq.com/biz/hero/champion.js
引入selenium和phantomjs
dr = webdriver.PhantomJS()
用phantomjs 解析js
构造xpath对元素定位
img=dr.find_elements_by_xpath('//ul//li//a//img')
获取每个英雄的名字和头像url
观察发现 每个img标签的src属性是url,alt属性是名字
for i in img:i.get_attribute('src')i.get_attribute('alt')
最终步骤
最终代码
from selenium import webdriver
import urllib.request
#无头浏览器
dr = webdriver.PhantomJS()
#打开网页
dr.get('https://lol.qq.com/data/info-heros.shtml')
#xpath定位
img=dr.find_elements_by_xpath('//ul//li//a//img')try: for i in img:name=i.get_attribute('alt')url=i.get_attribute('src')imgname="D:/picture/"+str(name)+".jpg"#保存进本地urllib.request.urlretrieve(url,filename=imgname)
except urllib.error.URLError as e:#简单异常处理pass#退出浏览器
dr.quit()
结果展示
至此,148个英雄头像爬取完毕
爬取装备图片
装备与英雄的大部分都相同,只需简单几步即可实现爬取装备图片
https://lol.qq.com/data/info-item.shtml
xpath也稍微有点不一样
dr.find_elements_by_xpath('//div//ul//li//img')
装备的名称位于img同级标签
dr.find_elements_by_xpath('//div//ul//li//p')
图片和名字是两个列表
最终代码
try: j=1 # 因为之前的xpath匹配出来多一个图片,这里从一开始去掉for i in name_list:#遍历name列表name=i.texturl=img_list[j].get_attribute('src')#获取图片urlj=j+1imgname="D:/picture/"+str(name)+".jpg"print(name+url)#保存进本地urllib.request.urlretrieve(url,filename=imgname)
except urllib.error.URLError as e:#简单异常处理pass
成功展示
鞋子和打野刀存在命名重复,会被覆盖一部分
最后
可以关注一下我的公众号,最近开始写公众号,我会在上面分享一些资源和发布一些csdn上发布不了的干货
点个关注是对博主最大的支持
python爬虫工程师 成长之路十 selenium+phantomjs+request爬取lol所有英雄头像和装备图片相关推荐
- python爬虫工程师 成长之路八 Selenium WebDriver
文章目录 Selenium WebDriver 简介 Selenium WebDriver 原理 Selenium WebDriver 安装 Selenium WebDriver 使用 浏览器常用操作 ...
- Python爬虫新手入门教学(十八):爬取yy全站小视频
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 https://space. ...
- Python爬虫新手入门教学(十六):爬取好看视频小视频
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 https://space. ...
- Python爬虫新手入门教学(十五):爬取网站音乐素材
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 https://space. ...
- python爬虫工程师 成长之路一 初识爬虫
文章目录 爬虫简介 为什么要学习爬虫 爬虫的结构 爬虫的类型 聚焦爬虫的工作原理和过程 爬虫常用功能 搜索引擎介绍 用户爬虫 最后 爬虫简介 爬虫,就是网络爬虫,也称为网页蜘蛛.网络机器人.网络蚂蚁等 ...
- Python爬虫新手入门教学(十四):爬取有声小说网站数据
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 https://space. ...
- 【Python爬虫系列教程 31-100】通过scrapy框架、爬取汽车之家宝马5系图片,学习Images管道
现在爬取的汽车之家宝马5系车的图片,可以看到在这个网址里面,放了车的不同部位的图片,下面就要将他们爬下来并且保存到不同的文件夹. 首先用到的是pycharm IDE,这个软件可以提高编写代码的效率,因 ...
- python爬虫工程师 成长之路六(二) 非结构化数据之lxml库
文章目录 lxml库 介绍 lxml库 使用 最后 lxml库 介绍 lxml是一个使用python编写的库,处理XML非常方便,另外还支持XPath,(上篇博客的XPath派上用处了XPath 基础 ...
- python爬虫工程师 成长之路六(一) 非结构化数据之XPath
文章目录 XPath 介绍 XPath 节点 XPath 语法 路径表达式 谓语 通配符 选取若干路径 XPath 轴 步(step) XPath 运算符 最后 XPath 介绍 XPath(XML ...
最新文章
- 【HTML】框架集(Framesets)
- 取代C语言标准输入输出:cin 和 cout【C++标准输入输出】
- vue-cli 3.0 跨域请求代理
- jvm高并发_在JVM上对高并发HTTP服务器进行基准测试
- oracle job 与存储过程,应用oracle job和存储过程
- android中多态的应用_动态代理原理及在 Android 中的应用
- unity3d 求两个点长度_用Scratch3.0模拟求π的近似值(二) #寻找真知派#
- 标志寄存器操作(待续)
- NodeManager 启动一会儿挂掉
- ubuntu20.04版本下,ssh学习传输文件
- 如何使用 SEGGER Embedded Studio创建库文件?
- winrm java客户端_java通过winrm4j远程连接win执行命令
- Linux 压测工具 stress 安装下载
- R语言进行人年发病率可信区间计算(per 1,000 person-years)
- 中央广播电视大学中等专业办公设备使用与维护
- python:使用 PythonMagick 生成 icon 图标
- 解决uniapp调试过程中的请求跨域和环境配置
- sql中的类型转换---学习
- 用java计算小数的双阶乘
- 文件是存储在计算机外存上的,计算机存储器——内存和外存.doc
热门文章
- 深入MYSQL之事务篇(一)
- jQuery实战3:菜单效果
- JavaScript DOM 编程艺术 (第二版)学习之3-4章
- 十一、用场效应管设计D触发器(高电平触发)(上升沿触发)(层次模块搭建)
- 【PTA】数据结构与算法->6-13 LinkList10-带头结点的单链表逆置【有题解视频,可本地编译器调试】作者 通信DS课程组单位 成都信息工程大学
- 腾讯qq对计算机进行更改,腾讯QQ电脑修改密码图文教程
- 带工作流的springboot后台管理项目,一个企业级快速开发解决方案
- css前端面试题(二)
- 工业视觉系统相关知识和选型介绍(二):镜头篇
- RabbitMQ 3.9