详解用selenium来下载小姐姐图片并保存


Posted in Python onJanuary 26, 2021

下载小姐姐图片并保存

  • 请求的地址
  • 伪装
  • 定位元素
  • 下载图片
  • 保存好了

下面开始我们的实战,这个是我们今天访问的url:

url = 'http://pic.netbian.com/4kmeinv/'

1,先把包给导进来:

import requests
from selenium.webdriver import Chrome,ChromeOptions
import os

不知道怎么导包的看我的第一篇,附上链接:
https://3water.com/article/204774.htm

2, 接下来就开始发送请求

#请求的url
 url = 'http://pic.netbian.com/4kmeinv/'
 #进行伪装
 headers = {
 "User_Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36"
 }
 #发起请求
 response = requests.get(url=url,headers=headers)
 #手动设定响应数据的编码格式
 response.encoding = 'utf-8'
 page_text = response.text
 #这个就是再后台上面运行那个浏览器,不在表面上占用你的
 option = ChromeOptions()
 option.add_argument('--headless')
 option.add_argument("--no-sandbox")
 option.add_experimental_option('excludeSwitches',['enable-automation'])
 #这里也要输入
 browser = Chrome(options=option)
 browser.get(url)

相信看过我上篇的都知道这些,那就废话不多说,定位元素:

3,定位:

先看下代码再说:

li = browser.find_elements_by_xpath('//*[@id="main"]/div[3]/ul/li')

老样子,分为三步,第一步选中所选的图片?>copy xpath?>ctrl+f -->粘贴进去可以看到是1of1,但明显我们要的是这个页面上所有的图片,所以呀,只需要改一下就可以啦,将tr[1],里面的包括括号删掉就可以。

详解用selenium来下载小姐姐图片并保存

这样的话就是整个页面内所有的图片啦,

详解用selenium来下载小姐姐图片并保存

4,创建文件以保存我们所要的图片:

#创建一个文件夹
 if not os.path.exists('./小美女图'):
 os.mkdir('./小美女图')

然后再循环一下就好啦:

for i in li:
 img_src = i.find_element_by_xpath('./a/img').get_attribute('src')
 img_name = i.find_element_by_xpath('./a/img').get_attribute('alt')+'.jpg'

至于为什么要这么写,可以看一下我的上一篇博客:

5,保存

img_data = requests.get(url=img_src,headers=headers).content
 img_path = '小美女图/'+img_name
 with open(img_path,'wb') as fp:
  fp.write(img_data)
  print(img_name,'下载成功!!!')

最后的结果哈哈哈哈:这个也不存在什么图片尺寸过大啥的,如果错了,多半是你元素没有定位好。

详解用selenium来下载小姐姐图片并保存

到此这篇关于详解用selenium来下载小姐姐图片并保存的文章就介绍到这了,更多相关selenium 下载图片内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
使用Python中的greenlet包实现并发编程的入门教程
Apr 16 Python
python简单实现刷新智联简历
Mar 30 Python
对Python中gensim库word2vec的使用详解
May 08 Python
基于python绘制科赫雪花
Jun 22 Python
将string类型的数据类型转换为spark rdd时报错的解决方法
Feb 18 Python
python中的subprocess.Popen()使用详解
Dec 25 Python
Python中sorted()排序与字母大小写的问题
Jan 14 Python
Python使用xlrd实现读取合并单元格
Jul 09 Python
python利用os模块编写文件复制功能——copy()函数用法
Jul 13 Python
python pymysql库的常用操作
Oct 16 Python
python3列表删除大量重复元素remove()方法的问题详解
Jan 04 Python
python中的plt.cm.Paired用法说明
May 31 Python
selenium与xpath之获取指定位置的元素的实现
Jan 26 #Python
详解Python中的Lock和Rlock
Jan 26 #Python
5分钟快速掌握Python定时任务框架的实现
Jan 26 #Python
Python爬虫自动化爬取b站实时弹幕实例方法
Jan 26 #Python
python 实现的车牌识别项目
Jan 25 #Python
Python实现给PDF添加水印的方法
Jan 25 #Python
2021年值得向Python开发者推荐的VS Code扩展插件
Jan 25 #Python
You might like
php 数组二分法查找函数代码
2010/02/16 PHP
ThinkPHP框架设计及扩展详解
2014/11/25 PHP
Laravel5框架自定义错误页面配置操作示例
2019/04/17 PHP
关于图片验证码设计的思考
2007/01/29 Javascript
简单的无缝滚动程序-仅几行代码
2007/05/08 Javascript
JavaScript中的事件处理
2008/01/16 Javascript
fireworks菜单生成器mm_menu.js在 IE 7.0 显示问题的解决方法
2009/10/20 Javascript
Javascript结合css实现网页换肤功能
2009/11/02 Javascript
ExtJS Grid使用SimpleStore、多选框的方法
2009/11/20 Javascript
javascript自执行函数之伪命名空间封装法
2010/12/25 Javascript
Dreamweaver jQuery智能提示插件,支持版本提示,支持1.6api
2011/07/31 Javascript
Jquery实现带动画效果的经典二级导航菜单
2013/03/22 Javascript
JS中如何判断传过来的JSON数据中是否存在某字段
2014/08/18 Javascript
javascript中判断json的方法总结
2015/08/27 Javascript
jQuery的promise与deferred对象在异步回调中的作用
2016/05/03 Javascript
Ext JS框架中日期函数的用法及日期选择控件的实现
2016/05/21 Javascript
原生js仿jquery animate动画效果
2016/07/13 Javascript
AngularJS动态生成div的ID源码解析
2016/08/29 Javascript
浅析Jquery操作select
2016/12/13 Javascript
node.js调用Chrome浏览器打开链接地址的方法
2017/05/17 Javascript
jQuery实现右侧抽屉式在线客服功能
2017/12/25 jQuery
JS实现将对象转化为数组的方法分析
2019/01/21 Javascript
Vue js with语句原理及用法解析
2020/09/03 Javascript
[01:03:09]完美世界DOTA2联赛PWL S2 Forest vs SZ 第二场 11.25
2020/11/26 DOTA
[44:37]完美世界DOTA2联赛PWL S3 Forest vs access 第一场 12.11
2020/12/13 DOTA
python网络编程之TCP通信实例和socketserver框架使用例子
2014/04/25 Python
Python 正则表达式爬虫使用案例解析
2019/09/23 Python
Python 内存管理机制全面分析
2021/01/16 Python
艺术设计专业个人求职信
2013/09/21 职场文书
好矿嫂事迹材料
2014/01/21 职场文书
公司股份合作协议书
2014/12/07 职场文书
幼儿园奖惩制度范本
2015/08/05 职场文书
宣传委员竞选稿
2015/11/19 职场文书
《秋天的怀念》教学反思
2016/02/17 职场文书
详解Django中 render() 函数的使用方法
2021/04/22 Python
解析Java中的static关键字
2021/06/14 Java/Android