python:分享美女图

与大家一起分享刚刚写好的py.

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib
import urllib2
import os
import re
import sys
def trypicdir(picpath):
    if not os.path.exists(picpath):     #下载到的本地目录,路径不存在时创建一个
        os.makedirs(picpath)

#显示下载进度
def schedule(a,b,c):
    ‘‘‘‘‘
    a:已经下载的数据块
    b:数据块的大小
    c:远程文件的大小
    ‘‘‘
    per = 100.0 * a * b / c
    if per > 100 :
        per = 100
    print (‘%.2f%%‘ % per)

#获取html源码
def getHtml(url):
    page = urllib.urlopen(url)
    html = page.read()
    return html
#正则匹配分页
def findPage(html):
    myItems = re.findall(‘<span>(\d*)</span>‘, html, re.S)
    if myItems :
        return myItems.pop()
    else:
        return 0
#正则匹配列表
def findList(html):
    Items = re.findall(‘<span><a href="http://www.mzitu.com/(\d*)" target="_blank">(.*?)</a></span>‘, html, re.S)
    myItems=[]
    for i in Items:
        myItems.append((i[0]))
    return myItems

#下载图片
def downloadImg(url_pic,picpath):
    tmppic = re.findall("http:\/\/www.mzitu.com/(.*?)$",url_pic,re.S)[0]
    picfile = picpath+‘/%s.jpg‘ % ‘_‘.join(tmppic.split(‘/‘))
    html=getHtml(url_pic)
    myItems = re.findall(‘<p><a href="http:\/\/www.mzitu.com/.*?" ><img src="(.*?)" alt=".*?" /></a></p>‘,html,re.S)
    print (‘正在下载%s图片存储到本地%s..... ‘%(url_pic,picfile))
    try:
        urllib.urlretrieve(myItems[0], picfile, schedule)
    except:
        print (‘下载%s图片存储到本地%s失败,请检查链接是否有问 ‘%(url_pic,picfile))

#单个美女连接下载
def getdowns(modelUrl,picpath):
    listHtml=getHtml(modelUrl)
    TotablNum=findPage(listHtml)
    if TotablNum != 0:
        for i in range(1,(int(TotablNum)+1)):
            downloadImg(url_pic=‘%s/%s‘%(modelUrl,i),picpath=picpath)
    else:
        downloadImg(url_pic=‘%s‘%(modelUrl),picpath=picpath)
‘‘‘
思路:
1、获取所有美女连接列表。
2、获取单个美女总连接数。
3、下载。
‘‘‘
if __name__ == ‘__main__‘:
    #picpath=r"F:\9tmp_pic"
    picpath=‘/tmp/pic_tmp‘
    trypicdir(picpath=picpath)
    listHtml = getHtml(‘http://www.mzitu.com/model‘)    #这是其中一个模块的url,可以添加不同的模块url从而达到整站爬取。
    listContent = findList(listHtml)
    #print ("listContent:",listContent)
    for m in listContent:
        getdowns(modelUrl=‘http://www.mzitu.com/%s‘%m,picpath=picpath)
    print ("恭喜,所有美女图片已经下载完成。")

效果图:

时间: 2024-10-09 05:00:35

python:分享美女图的相关文章

2019版python学习路径图

据了解,在Blender.GIMP等软件的背后,Python图形处理脚本已经在发挥越来越大的作用.如果你看过Blender基金会制作的三部开源动画影片,你甚至还能预期不远的未来,Python终将有一天能够进军好莱坞,成为数字电影制作的一种工具.因此有越来越多的人加入到Python的学习中来.2019版python学习路径图分享给你.有人说Python难,其实只是因为很多人不熟悉python的部署,所以才说难,目前python不是非常普及的原因有两个:第一是会python的程序员较少,从招人就能看

Python10分钟入门教程,Python入门神图一张

这篇文章主要介绍了Python 10分钟入门教程,分享一张Python入门神图一张,具有一定的参考价值,感兴趣的小伙伴们可以参考一下| 初试牛刀 假设你希望学习Python这门语言,却苦于找不到一个简短而全面的入门教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手册(CheatSheet)之间,因此只会包含一些基本概念.很显然,如果你希望真正学好一门语言,你还是需要亲自动手实践的.在此,我会假定你已经有了一定的编程基础,因此我会跳过大部分

TensorFlow的初次使用+Python画3D图和计算KL散度

ython计算KL散度import numpy as np import scipy.stats x = [np.random.randint(1,11) for i in range(10)] print(x) print(np.sum(x)) px = x/np.sum(x)#归一化 print(px) y = [np.random.randint(1, 11) for i in range(10)] print(y) print(np.sum(y)) py = y / np.sum(y)#

如和用Python获取今日头条上面三千美女图,且看教程

我们的学习爬虫的动力是什么? 有人可能会说:如果我学好了,我可以找一个高薪的工作. 有人可能会说:我学习编程希望能够为社会做贡献(手动滑稽) 有人可能会说:为了妹子! ..... 其实我们会发现妹子才是第一生产力呀! 今天咱们就是爬取今日头条,你要问我为什么要爬取今日头条?是因为爱嘛? 是因为责任嘛? 不,是因为头条里面的有很多美女图片,然后我们可以把她们都爬取下来!!! 是不是想想都觉得很兴奋,是不是都要流鼻血了?! 我们要做的就是把上面的图片给爬下来. 开始分析网站 按下f12,然后点击ne

使用Python下载妹子图网站图片

最近在学习Python的爬虫部分.看到有网友在分享使用爬虫爬取各种网站的图片的代码,也想自己写个玩玩.今天花时间分析了一下妹子图网站的结构和HTML代码,使用urllib2和BeautifulSoup写出了一个自动下载妹子图网站图片的脚本. 妹子图网址:http://www.mzitu.com 运行效果如下: 源代码如下,请各位大神指教: # -*- coding:utf8 -*- # Python:         2.7.8 # Platform:       Windows # Autho

【Python3爬虫】爬取美女图新姿势--Redis分布式爬虫初体验

一.写在前面 之前写的爬虫都是单机爬虫,还没有尝试过分布式爬虫,这次就是一个分布式爬虫的初体验.所谓分布式爬虫,就是要用多台电脑同时爬取数据,相比于单机爬虫,分布式爬虫的爬取速度更快,也能更好地应对IP的检测.本文介绍的是利用Redis数据库实现的分布式爬虫,Redis是一种常用的菲关系型数据库,常用数据类型包括String.Hash.Set.List和Sorted Set,重要的是Redis支持主从复制,主机能将数据同步到从机,也就能够实现读写分离.因此我们可以利用Redis的特性,借助req

用Python来P图,分析怎么吃鸡?只有想不到,没有做不到

只有想不到,没有做不到,用python可以做哪一些有趣的事情呢?一起来看看吧! 1.词云 用Python读取极品家丁小说,分词后展示词云. 2. 分析了70多万场绝地求生的比赛数据,总结出独家吃鸡攻略 分析了总共20多G.70多万场的绝地求生比赛数据,总结出各种地图哪里跳的人最多.近战最佳武器.狙击最佳武器等,程序员嘛,靠技术吃鸡也很重要. 海岛地图中,跳机场跟学校是死得最快的. 沙漠地图中,跳Pecado.San Martin.Power Grid是死得最快的. 开车对吃鸡很重要!!! 满配的

android生成分享长图并且添加全图水印

领导最近觉得携程的截屏生成长图分享效果比较好,所以我们也加了个:产品觉得分享出去的长图需要加公司品牌水印,于是我们也加了个:嗯,事件起因就是这样. 长图一般是ScrollView和ListView. 我们需要取得这两个控件的完整显示的图片.原理很简单,搞一张和控件长宽一致的画布(就是创建一个高宽相等的bitmap).然后调用控件的draw方法把自己画到画布上去. 分别贴出两个控件的长图获取方法 /** * 截取scrollview的屏幕 **/ public static Bitmap getS

android生成分享长图而且加入全图水印

领导近期认为携程的截屏生成长图分享效果比較好,所以我们也加了个.产品认为分享出去的长图须要加公司品牌水印,于是我们也加了个.嗯,事件起因就是这样. 长图通常是ScrollView和ListView. 我们须要取得这两个控件的完整显示的图片. 原理非常easy,搞一张和控件长宽一致的画布(就是创建一个高宽相等的bitmap).然后调用控件的draw方法把自己画到画布上去. 分别贴出两个控件的长图获取方法 /** * 截取scrollview的屏幕 **/ public static Bitmap