实现步骤:

1.下载页面源码

2.对页面进行解析,获取页面中所有的图片路径

3.下载图片到指定路径

代码实例:

# coding: utf-8
import urllib2     # 该模块用于打开页面地址
import urllib      # 用于下载图片(为什么需要同时引进urllib和urllib2,请参考:https://www.cnblogs.com/wly923/archive/2013/05/07/3057122.html)
import re          # 用于正则表达式
import urlparse    # 将src拼接成一个可以直接访问的图片地址
import os          # 用于指定文件的保存地址
from bs4 import BeautifulSoup   # 用于将文档转为固定编码文件,便于从网页抓取数据class Downloader(object):def html_download(self, url):    # 页面源码下载if url is None:returnresponse = urllib2.urlopen(url)if response.getcode() != 200:      # 判断页面是否访问成功returnhtml_cont = response.read()self.html_parse(url, html_cont)def html_parse(self, url, html_cont):   # 源码解析,提取需要的数据img_urls = []if url is None or html_cont is None:returnsoup = BeautifulSoup(html_cont, 'html.parser', from_encoding='utf-8')imgs = soup.find_all('img', src=re.compile("/image/2017index/(.*)"))  # 根据src得到所有的img标签for img in imgs:new_url = img['src']  # 获取所有的链接new_full_url = urlparse.urljoin(url, new_url)  # 让new_url按照page_url的格式拼接成一个完整的url
            img_urls.append(new_full_url)self.img_download(img_urls)def img_download(self, img_urls):    # 文件下载保存if img_urls is None or len(img_urls) == 0:print 'no img can download'returncur_path = os.path.abspath(os.curdir)   # 获取当前绝对路径goal_path = cur_path + '\\' + 'imgs'   # 想将文件保存的路径if not os.path.exists(goal_path):      # os.path.isfile('test.txt') 判断文件夹/文件是否存在os.mkdir(goal_path)      # 创建文件夹count = 1    # 用于给图片命名for img in img_urls:print imgurllib.urlretrieve(img, goal_path+'/'+str(count) + '.jpg')      # 下载图片,并进行命名(刚开始写这句的时候老是报错,后来才发现没有用str()进行类型转换,因为习惯了js的自动转换的思想,哈哈)count = count+1if __name__ == '__main__':     # 程序运行入口root_url = 'http://www.quanjing.com/'   # 页面地址downloader = Downloader()downloader.html_download(root_url)

Bingo, 这样子就可以把一个页面所有的美女图片下载到你的硬盘上啦!

转载于:https://www.cnblogs.com/qilj/p/8194342.html

python下载指定页面的所有图片相关推荐

  1. python下载指定的版本包

    首先我们很多时候在执行pip的时候是不行的  有时候很难成功,这个时候我们就要想其他的版本了 一.是不是这个包需要指定版本, 比如python2的和mysql链接的是,而python3则是mysqlc ...

  2. 【Python】Python下载动态页面图片

    1.搭建Selenium环境: pip install selenium 到D:\python3.6.5\Lib\site-packages下把selenium文件夹复制到D:\python3.6.5 ...

  3. linux用命令下载图片,Linux命令行中采集指定页面的图片地址及图片下载

    获取指定页面中的图片地址: curl news.baidu.com | grep -Eio '(http|ftp|https)://[A-Za-z0-9_./]+(.jpg|.png|.gif)' 复 ...

  4. 微信内打开的网页不能下载APP,微信无法打开浏览器访问指定页面的解决方案...

    不管是app的下载链接还是普通文件的链接在微信内置浏览器或者QQ内置浏览器分享都会被拦截.这是腾讯对第三方下载域名实施的打压政策.被屏蔽了也就意味着链接在微信中是无法正常打开的,那么此时用户在微信内打 ...

  5. python小练——下载指定url中的图片

    python小练--下载指定url中的图片 #coding=gbk #download pictures of the url #useage: python downpicture.py www.b ...

  6. Python读取指定文件夹中的所有图片并保存

    事先说明:本文所有灵感来源于博客python读取文件夹下所有图片 在复现的基础之上作了一些修改,加入了一些自己的心得体会: 改进: 1.原博客要求所读取文件夹与python文件在同一目录下,这里进行了 ...

  7. python 批量下载指定时间段的邮箱附件

    邮箱附件下载 在收到很多人发的邮件时,一个一个的接收附件比较麻烦,考虑使用python实现指定日期邮件附件的下载 首先需要开启邮箱的pop协议,一般在设置里,以QQ邮箱为例,设置后会给个密码,这个就是 ...

  8. Python之pip download 命令用法-下载指定平台和python版本的依赖包

    简介 pip download 和 pip install 有着相同的解析和下载过程,不同的是,pip install 会安装依赖项,而 pip download 会把所有已下载的依赖项保存到指定的目 ...

  9. Python下载文件到指定文件夹

    Python下载文件到指定文件夹 import os # 导入os库 import urllib.request # 导入urllib库 import requests as rb # 导入reque ...

最新文章

  1. springboot controller 分页查询_Spring Boot实战分页查询附近的人:Redis+GeoHash+Lua
  2. 无关技术,关于香港对我的影响
  3. 小程序开发语言python_小程序是用什么语言开发的?5种最佳语言分享
  4. SSD 因 NCQ hang,failed command: WRITE FPDMA QUEUED / tag 28 ncq 4096 out
  5. JavaScript符号基础
  6. youphp学习整理
  7. bzoj2260: 商店购物4349: 最小树形图
  8. 【渝粤教育】电大中专消费者心理学基础作业 题库
  9. java留言板论文开题报告_在线留言板毕业设计开题报告.doc
  10. android框架揭秘!连续四年百度Android岗必问面试题!实战篇
  11. Android TelephonyManager获取LET信息及手机基本信息
  12. 测试——web案例思维导图
  13. Aras Innovator: AML包
  14. Microsoft Edge浏览器网页改为纯黑色(将浏览器网页底色改为黑色)
  15. json数据和json数据与python之间的转换
  16. png背景变黑原理解析
  17. 【MySQL】多表查询策略(多表联查子查询)
  18. 用python祝福父亲节_2020年父亲节给爸爸的微信祝福语27条
  19. win10移动桌面到D盘
  20. 诺基亚结盟微软 称将全球范围大规模裁员

热门文章

  1. 【转】摩托罗拉推开源硬件平台计划Project Ara
  2. win10下pycharm+Qtdesigner+Pyqt 成功配置
  3. linux在线聊天报告,EChat: Linux下基于命令行的在线聊天系统
  4. 服务器在线看视频无法播放,上传到服务器的视频不能在线播放怎么办?
  5. “华尔街之狼”:预计BTC价格将反弹至10万美元
  6. Matcha已升级至0xV4版,比Uniswap和Sushi等平台节省4%的交易费
  7. Filecoin Gas基础费率升至5.06 nanoFIL
  8. 风控扫盲:巴塞尔下的分池与量化风控岗
  9. MySQL高级知识(十二)——全局查询日志
  10. AttributeError: 'Request' object has no attribute 'is_xhr' 报错的解决办法