Python爬虫系列(六)外国图库Unsplash图片自动化下载
来源:互联网 发布:上海牙周炎医院 知乎 编辑:程序博客网 时间:2024/06/10 14:49
再做一个网站,要找一些高清图片,然后同学推荐了这个网站:Unsplash 。但是每张图片下载要手动点,然后下拉加载更多图片,效率不高,所以自己写了爬虫程序,进行自动化下载图片,自己参考了下面这篇文章(很多地方有所改动):
Python爬虫小白入门(五)PhatomJS+Selenium第二篇
一、分析网站,找到图片的src地址
因为这个网站和上一篇的360图库差不多,图片相关信息是通过js动态加载的,所以自己先观察了下network下的XHR,果然找到想要的信息,并且响应数据是我们容易处理的json格式,但是自己爬去的时候,请求被拒绝了。。。
然后自己尝试获取网页源代码,然后找到img的源地址,通过分析发现,每张图片放在a标签里,class=“cV68d”,background-image的url地址就是图片的源地址。
所以大致思路是:首先通过的selenium+Chrome() (ps:我用PhantomJS有bug过不去。)模拟浏览器下拉行为,然后获取网页源代码,通过xpath和正则表达式获取到图片的源地址,然后获取图片名称,并下载保存。
二、程序代码及相关解释
1、这次使用的模块有点多,主要是为了方便操作和下载图片
2、 驱动使用的Chrome,需要提前准备好。
2、使用execute_script()执行js脚本,实现浏览器下拉
3、获取a标签的style内容,然后获取到目标数据,最后执行保存图片方法
这里提到一点就是:fina_src=urlparse(' '+ src).path.strip(),这里我用空格拼接一下的目的是为了能够正确得到图片的地址,否则解析的path内容不正确
url加上的空格之后,效果是下面
(ps:这个调了好长时间,,头皮发麻)
4、执行函数,这里设置下拉三次,下载的图片不是30张,而是500多,原因也很简单:每次下拉的高度是下拉到底部,一个窗口的高度,而加载10张图片只需下拉一点高度。
三、执行效果
源码:https://github.com/yanqiangmiffy/Unsplash
- Python爬虫系列(六)外国图库Unsplash图片自动化下载
- Python爬虫系列(五)360图库美女图片下载
- Python爬虫(六)爬京东商品图片
- python 爬虫下载图片
- python网络爬虫自动化下载股票类电子书(1)
- Python 网络爬虫-下载图片
- python 爬虫下载网站图片
- python 爬虫批量下载图片
- python 简单爬虫下载图片
- python爬虫学习--下载图片
- python爬虫系列(六):强大的beautifulsoup
- 基于jsoup爬虫下载图库
- Python爬虫Requests模块系列之六
- python 百度贴吧爬虫(下载图片)
- python简单爬虫(下载知乎图片示例)
- Python练手爬虫系列No.1 知乎福利收藏夹图片批量下载
- python中使用网络爬虫下载图片
- python 3.x网络爬虫 下载图片
- C++之const对象只能调用const成员函数---补充(18)《More Effective C++》
- Python爬虫系列(四)(简单)Dota排行榜爬取,并存入Excel表格
- Python爬虫系列(五)360图库美女图片下载
- RSA算法原理
- 经常用到的 ES6/7 新特性
- Python爬虫系列(六)外国图库Unsplash图片自动化下载
- Python爬虫系列(七)豆瓣图书排行榜(数据存入到数据库)
- 2017/6/8-python正则表达式的使用
- redis中修改密码
- VUE 生命周期图示
- Python基础学习(八)
- 2017/6/9-Python文件读写的方法
- Go Reflect
- Vue实现百度下拉提示搜索