| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> 【小白+python+selenium库+图片爬取+反爬+资料】超详细新手实现(02)多案例图片地址获取+下载 -> 正文阅读 |
|
[Python知识库]【小白+python+selenium库+图片爬取+反爬+资料】超详细新手实现(02)多案例图片地址获取+下载 |
OK,上一章我们已经配置好爬虫所需的环境,现在就可以大展身手了! ?一、获取图片网址首先打开pythonIDLE输入:
(如果有报错看一下注释和上一章的注意事项,多半是版本问题) 如无意外浏览器成功打开: ?(打开之后会看见上面有一行“浏览器正受到自动化软件控制,问题不大,下一章我们会说怎么去除) 开始前复习一下上一章的网页基本知识,下面按 找节点-->找要素-->得到要素的值?
再看一下要用的函数
接下来,我们写程序的大思路就是?找图片所在节点-->找图片地址所在要素-->得到要素的值? 而实现的方式就是用find_element(s)类函数找节点,用get_attribute函数找要素的值 ?01找图片所在节点也就是,我们要定位到img节点 以花瓣https://huaban.com/discovery/travel_places/为例
这时点F12,打开开发者工具,找节点思路如下: 1.具体分析网络元素
注意:
? ? 2.验证特征要素值是否OK 在打开开发者工具的情况下,按Ctrl+F,找class叫img x layer-view loaded的节点 ? ?发现的确就找到了所有img节点的上级节点,所以这个特征要素值可行 3.代码实现 方法一分步找(在这个例子中不行):
注意:
方法二xpath找:
用xpath语法在selenium库中找元素是很主流的,简单的介绍一下:
感兴趣的同学可以看看这篇文章: 另外通过开发者工具,我们也可以把某个元素的xpath找出来 ?注意:
? ? ? 2.在IDLE调试正确才写入pycharm,因为xpath报错会很大一堆,极影响心态 方法三css找: css也要求节点名无空格,因此这里不推荐 后面第四章我们讲到爬取商品信息时会较多用到css查找 4.下面分别再用这三种方法,看另一个实战案例
02获取节点里要素的值(即图片网址)无论用哪种方法上一步我们已经得到了一个由所有图片所在节点组成的数组,现在来取图片网址
这个img_path0就是我们成功获得的第一个图片网址! 然后我们写成循环遍历一下即可
现在得到的img_path数组里面就是所有图片的网址! 二、下载图片01修正网址其实,上一步我们说已经得到所有图片网站,是不严谨的 首先有的网站爬取下来的网址不含http://或https:// 其次是网站里面多半有防爬和略缩图机制存在,有时候爬取到的地址、在原页面中查看的图片地址和点入图片查看到的地址都是不同的!!!(离谱) 所以这就是为什么有的同学按教程爬到了图片,非常高兴,打开一看却全是小图 因此在写进循环前,我建议还要print一下图片网址 ? ? ? ?以这张图片为例
?可以发现我们爬取到的网址和原图有一个数字的差别,需要用字符串操作修正 这里用到的是字符串的截取和相加,要用时在CSDN查找“python字符串操作”翻阅即可
写进循环里面
现在得到的img_path数组就是高清原图数组啦! 02由网址下载图片首先要在程序最开头import两个库(requests是外部库,os是内部库) 然后按照这个模板写代码就OK
(注意:如果同学们心急在pycharm上运行,记得一定要在最顶端输入 # -*- coding:UTF-8 -*- 不要问问就是编码方式) ?上一章是完整配置流程欢迎进去坐坐 下一章会继续仔细讲程序在pycharm上运行,包括防爬+翻页+完整代码,喜欢的朋友请追更~ 过路的小伙伴觉得有用的话请帮我多多分享点赞!!!这对小透明的我很重要,感谢! 我们下章见~ |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 17:52:48- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |