今天"无意"看美女无意溜达到一个网站,发现妹子多多,但是可恨一个page只显示一张或两张图片,家里WiFi也难用,于是发挥"程序猿"的本色,写个小脚本,把图片扒下来再看,类似功能已有不少大师实现了,但本着学习锻炼的精神,自己折腾一遍,涨涨姿势!

先来效果展示下:

python代码:

# -*- coding:utf8 -*-
import urllib2
import re
import requests
from lxml import etree
import osdef check_save_path(save_path):try:os.mkdir(save_path)except:passdef get_image_name(image_link):file_name = os.path.basename(image_link)return file_namedef save_image(image_link, save_path):file_name = get_image_name(image_link)file_path = save_path + "\\" + file_nameprint("准备下载%s" % image_link)try:file_handler = open(file_path, "wb")image_handler = urllib2.urlopen(url=image_link, timeout=5).read()file_handler.write(image_handler)file_handler.closed()except Exception, ex:print(ex.message)def get_image_link_from_web_page(web_page_link):image_link_list = []print(web_page_link)try:html_content = urllib2.urlopen(url=web_page_link, timeout=5).read()html_tree = etree.HTML(html_content)print(str(html_tree))link_list = html_tree.xpath('//p/img/@src')for link in link_list:# print(link)if str(link).find("uploadfile"):image_link_list.append("http://www.xgyw.cc/" + link)except Exception, ex:passreturn image_link_listdef get_page_link_list_from_index_page(base_page_link):try:html_content = urllib2.urlopen(url=base_page_link, timeout=5).read()html_tree = etree.HTML(html_content)print(str(html_tree))link_tmp_list = html_tree.xpath('//div[@class="page"]/a/@href')page_link_list = []for link_tmp in link_tmp_list:page_link_list.append("http://www.xgyw.cc/" + link_tmp)return page_link_listexcept Exception, ex:print(ex.message)return []def get_page_title_from_index_page(base_page_link):try:html_content = urllib2.urlopen(url=base_page_link, timeout=5).read()html_tree = etree.HTML(html_content)print(str(html_tree))page_title_list = html_tree.xpath('//td/div[@class="title"]')page_title_tmp = page_title_list[0].textprint(page_title_tmp)return page_title_tmpexcept Exception, ex:print(ex.message)return ""def get_image_from_web(base_page_link, save_path):check_save_path(save_path)page_link_list = get_page_link_list_from_index_page(base_page_link)for page_link in page_link_list:image_link_list = get_image_link_from_web_page(page_link)for image_link in image_link_list:save_image(image_link, save_path)base_page_link = "http://www.xgyw.cc/tuigirl/tuigirl1346.html"
page_title = get_page_title_from_index_page(base_page_link)
if page_title <> "":save_path = "N:\\PIC\\" + page_title
else:save_path = "N:\\PIC\\other\\"get_image_from_web(base_page_link, save_path)

View Code

代码思路:

使用urllib2.urlopen(url).open来获取页面数据,再使用etree.HTML()将页面解析成xml格式,方便使用xmlpath方式来获取特定node的值,最终遍历所有页面得到要下载的图片,将图片保存到本地。

--=========================================================

python包安装:

很多python包没有windows安装包,或者没有X64版本的安装包,对于新手来说,很难快速上手,可以使用pip或easy_install来安装要使用的安装包,相关安装方式:https://pypi.python.org/pypi/setuptools

本人采用easy_install方式,我电脑安装python2.7,安装路径为:C:\Python27\python.exe,下载ez_setup.py文件后到c盘保存,然后运行cmd执行以下命令:

C:\Python27\python.exe "c:\ez_setup.py"

即可安装easy_install,安装结束后可以C:\Python27\Scripts下看到easy_install-2.7.exe,如果我们想在本地安装requests包,那么可以运行以下命令来试下:

"C:\Python27\Scripts\easy_install-2.7.exe" requests

--==========================================================

依旧是妹子压贴,推女郎第68期,想要图的自己百度

转载于:https://www.cnblogs.com/TeyGao/p/5225940.html

使用python来批量抓取网站图片相关推荐

  1. 利用python批量爬取网页图片_使用python来批量抓取网站图片

    今天"无意"看美女无意溜达到一个网站,发现妹子多多,但是可恨一个page只显示一张或两张图片,家里WiFi也难用,于是发挥"程序猿"的本色,写个小脚本,把图片扒 ...

  2. Python利用bs4批量抓取网页图片并下载保存至本地

    Python利用bs4批量抓取网页图片并下载保存至本地 使用bs4抓取网页图片,bs4解析比较简单,需要预先了解一些html知识,bs4的逻辑简单,编写难度较低.本例以抓取某壁纸网站中的壁纸为例.(b ...

  3. python抓取网站图片_利用python抓取网站图片

    看了网上关于python抓取网站图片的例子,所以自己也尝试着写一个,但是发现这个网站的src不是标准的路径,需要自己添加前面的目录地址,尝试了几次也不成功,所以希望有经验的朋友指导下. 本人是初学者, ...

  4. python爬虫学习基础教程,批量抓取美女图片!

    python的抓取功能其实是非常强大的,当然不能浪费,呵呵.下面就与大家分享一个python写的美女图自动抓取程序吧! 其中用到urllib2模块和正则表达式模块.下面直接上代码: 用python批量 ...

  5. python抓取网站图片_python抓取图片示例 python抓取网页上图片

    python抓取网页上图片 这个错误时是什么意思 下面是代码 import re import urllib.request imp正则表达式匹配的url有错误 for x in add: print ...

  6. Python网络爬虫——爬取网站图片小工具

    最近初学python爬虫,就写了一个爬取网站图片的小工具,界面如下: 用到的包主要是爬虫常用的urllib,urllib2和图形界面用的Tkinter,完整代码如下: # -*- coding:utf ...

  7. python scrapy框架 抓取的图片路径打不开图片_Python使用Scrapy爬虫框架全站爬取图片并保存本地的实现代码...

    大家可以在Github上clone全部源码. 基本上按照文档的流程走一遍就基本会用了. Step1: 在开始爬取之前,必须创建一个新的Scrapy项目. 进入打算存储代码的目录中,运行下列命令: sc ...

  8. 源代码src修改为本地图片_20 行 Python 代码批量抓取免费高清图片!

    前言 相信在你的工作中可能会经常用到PPT吧,你在PPT制作过程中有没有这样的困惑,就是可以到哪里找到既高清又无版权争议的图片素材呢?这里强烈推荐ColorHub,这是一个允许个人和商业用途的免费图片 ...

  9. 20 行 Python 代码批量抓取免费高清图片!

    前言 相信在你的工作中可能会经常用到PPT吧,你在PPT制作过程中有没有这样的困惑,就是可以到哪里找到既高清又无版权争议的图片素材呢?这里强烈推荐ColorHub,这是一个允许个人和商业用途的免费图片 ...

最新文章

  1. 综述:激光雷达全景分割的传统点云聚类方法的技术总结
  2. 《电子基础与维修工具核心教程》——2.6 节点分压原理
  3. dto是什么意思_DO,DTO,VO,POJO 你知道吗?
  4. Linux系统下文件字体乱码的解决方案
  5. 趣谈设计模式 | 命令模式(Command):将命令封装为对象
  6. 关于模型验证那点事儿
  7. 使用OC进行iOS截屏,同时保证清晰度
  8. 《算法导论》之 Problem 5.1-3(随机函数发生器的设计)
  9. [ACM_动态规划] hdu 1176 免费馅饼 [变形数塔问题]
  10. sql server 当月天数
  11. 【Android 逆向】Android 逆向用途 | Android 逆向原理
  12. 基于安卓的掌上二手图书交易app
  13. Linux 配置git同步GitHub代码
  14. 小笑话一则,但是却引人深思,谁能讲出它更深成的意义
  15. 【上海居转户申请流程及材料清单|干货分享】
  16. mysql强行结束程_如何强制结束进程?
  17. 收集整理的openstack java封装 api的第三方实现的选择
  18. linux系统切换root用户的多种方式
  19. 单片机拟真电路图软件_基于MSP430单片机设计的高效数控直流电源及其测试方法与流程...
  20. .net软件工程面试题

热门文章

  1. 【快乐水题】219. 存在重复元素 II
  2. 数据存储之 SQLite 数据库操作(一)
  3. sparkmllib scala GBDT Demo
  4. 使用snmp4j实现Snmp功能(二)
  5. docker单一部署jenkins
  6. Hyperledger Fabric 交易流程
  7. BZOJ 3720 [洛谷P2137] : Gty的妹子树
  8. lnmp环境搭建 php7,lnmp环境搭建(centos6.9+mysql5.7+php7.1+nginx1.10)
  9. 数据挖掘实验报告-决策树程序实验
  10. 学习操作系统的经典书籍