效果图版本以及需要用到的第三方库- python 2.7
- bs4 (安装命令: pip install bs4)
-
代码- #!/usr/bin/env python
- #coding:UTF-8
- #脚本名称: 爬妹纸写真图
- #脚本作者: 剑齿虎
- #脚本版本: python2.7
- #第三方库: BeautifulSoup
- import urllib2
- import os
- from bs4 import BeautifulSoup
- import sys
- reload(sys)
- sys.setdefaultencoding('gbk') #使用GBK编码
- #函数: 进入下载写真集
- def DownloadMz(url):
- html = urllib2.urlopen(url).read()
- dom_ = BeautifulSoup(html, 'html.parser') #解析为类似dom的对象
- title = dom_.body.select(".main-title")[0].string #找元素:标题
- count = dom_.body.select(".pagenavi")[0].findAll('a')[4].span.string #找元素:页数
- #打印信息
- print('title:' + title)
- print('count:' + count)
- print('url:' + url + "\n------------------")
- #保存图片
- for i in range(1,int(count)):
- get_url = url + "/" + str(i) #分页地址
- save_path = os.getcwd() + "\\Download\" + str(title) #保存目录
- #创建保存目录, 如果不存在
- if os.path.exists(save_path)==False:
- os.mkdir(save_path)
- #保存图片
- save_path = save_path + "\" + str(i) + ".jpg" #保存文件名
- SaveImage(get_url, save_path)
- print("-- OK: "+ save_path)
- print("---------- END -----------\n\n")
- #函数: 保存每页图片
- def SaveImage(get_url, savePath):
- #获取图片地址
- html = urllib2.urlopen(get_url).read()
- dom_ = BeautifulSoup(html, 'html.parser')
- src = dom_.select(".main-image")[0].p.a.img['src']
- #保存呀保存
- f = open(savePath, 'wb')
- f.write(urllib2.urlopen(src).read())
- f.close()
- #来啊~ 快活呀
- url = "http://www.mzitu.com/japan/"
- html = urllib2.urlopen(url).read()
- bs = BeautifulSoup(html, 'html.parser')
- pages = bs.body.select(".page-numbers")[5]['href'] #取总页数html
- #取爬取页面分页总数
- cur_end = pages.rindex("/", 0)
- cur_start = pages.rindex("/", 0, cur_end) + 1
- page_count = pages[cur_start:cur_end] #页数
- for i in range(1, int(page_count)):
- page_url = url + "/page/" + str(i) #分页url
- print("*** PAGE *** " + str(i) + "/" + str(page_count) + " $ " + page_url)
- dom_ = BeautifulSoup(urllib2.urlopen(page_url).read(), 'html.parser') #取分页dom
- uls = bs.body.findAll('ul',{'id':'pins'})[0].findAll("li") #获取写真集列表
- #进入下载写真集
- for li in uls:
- DownloadMz(str(li.span.a['href']))
复制代码
目前正在学习Python, 为了更能快速学到知识. 最好就是实践一个小项目, 一般看文档一般搜百度一边写程序, 虽说踩的坑不少, 但也积累了经验. 这个程序还存在个问题, 就是”写真集”没有分页, 下载完第一页就结束了. 有兴趣的小伙伴可以改改 “脚本目录需要新建一个 Download 目录, 脚本不会自己创建这个目录的~”
|