优美库图片小程序 version1.0

今天制作一个优美库图片小程序,网址http://www.umei.cc/bizhitupian/

爬虫的相关流程:获取目标网址-获取数据-存储数据。下面使该网页的内容:

图片一:

第一步:找到该网站下的便签,找到该标签网页下所有的url,这里的思路是获取该标签下的页数,通过循环拼接所有的url。

对标签下的网页1(<http://www.umei.cc/bizhitupian/diannaobizhi/1.htm>)与网页2(<http://www.umei.cc/bizhitupian/diannaobizhi/2.htm>)进行比较,相信你会发现规律的。如图片2,2.1:

代码段:

import  requests
from lxml import  etree
import  re
from urllib.request import urlretrieve
import  random
dict = {}
img_url = []
img = []headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
}
def Total_label():'''获取标签并进行分类存放在字典中'''response = requests.get('http://www.umei.cc/bizhitupian/').contenthtml = etree.HTML(response)title = html.xpath("//div[@class='w850 l oh']//a/@title")url = html.xpath("//div[@class='w850 l oh']//a/@href")# 循环镶嵌将标题与url结合index = 0for i in title:dict[i] = url[index]index += 1
# for k, v in dict.items():
#     print(k , v)
# 抓取链接
def Grab(num):'''获取每个标签下的总页数'''url = dict[num]# print(url)response = requests.get(url,headers=headers,timeout=3)# response.encoding = 'utf-8'text = response.content.decode('utf-8')html = etree.HTML(text)pages = html.xpath("//div[@class='NewPages']//ul/li//@href")[-1].split('.')[0]return (int(pages),url)# 获取总页中所有分页的url
def get_paging(url,pages_n):urls = [url+'{}.htm'.format(i) for i in range(1,pages_n+1)]'''获取每个url下的图片链接'''for i in urls:response_time = requests.get(i, headers=headers, timeout=3)# response.encoding = 'utf-8'text = response_time.content.decode('utf-8')html = etree.HTML(text)jpg_url = html.xpath("//div[@class='TypeList']//a/@href")for i in jpg_url:img_url.append(i)

第二步:我们已经有了分页的url,我们再获取图片的url,进行下载即可:

def img_To_obtain():'''图片获取'''# 图片链接 Xpath语法://*[@id="ArticleId60"]/p/a/img/@src# print(img_url)for x in img_url:response = requests.get(x,headers=headers,timeout=3)text = response.content.decode('utf-8')html = etree.HTML(text)'''整站爬,分页,可以通过url进行判断if 页数2 == 网页状态404:只是一张图片该系列有分页'''page_f = html.xpath('//*[@id="ArticleId60"]/p/a/img/@src')for j in page_f:img.append(j)def extract():'''随机获取一张图片'''IMAGE_URL = random.choice(img)The_suffix = IMAGE_URL.split('.')[3]urlretrieve(IMAGE_URL, './image/img1.{}'.format(The_suffix))

主程序部分:

if __name__ == '__main__':print('================欢迎来到图片选择器v1.0=====================')print('''=====================提示信息=============================1:电脑壁纸2:手机壁纸3.动态壁纸。。。。9:可爱壁纸''')Total_label()num = str(input("请输入您的选择:"))'''页数+标题url'''page_n,url = Grab(num)print('%s页数为:%s, url:%s'%(num,page_n,url))get_paging(url,page_n)extract()

结尾:

该程序比较低级,可以说很垃圾,小编自己都感觉很垃圾,有很多没有完善的地方,使用的面向过程的,没有多线程,没有异常处理,代码啰嗦等。

胜在学习思路吧,该网站是没有反爬的,基本网站,但是不要过度的请求,给对方服务器留条活路,后期会把完善的代码重做一期跟大家一起学习。

优美库图片小程序 Version1.0相关推荐

  1. 用云开发搭建的微信答题小程序v1.0

    近来百无聊赖,遂抽空做了一个答题小程序的系列教程,以及分享源码,是用云开发搭建的微信答题小程序v1.0. 界面截图 该答题小程序大致如下图: 结构层级 主要程序由3个界面组成,分别是index,tes ...

  2. 全云端万能小程序_百搜全云端万能门店小程序v4.0.13五端独家2次开发升级独立版...

    百搜全云端五端万能小程序独立版简介: 包含:百度小程序,支付宝小程序,微信小程序,头条小程序,QQ小程序,H5,PC商城. 功能:支持小程序一键上传极速审核,对接微信开放平台发布使用,也可以单独使用开 ...

  3. 抖音壁纸小程序v1.0.2版本功能,新增达人入住功能

    抖音壁纸小程序v1.0.2版本功能 抖音壁纸小程序源代码 此次新增和优化功能如下: 达人入住 达人审核 收益管理 下载壁纸页面UI优化 素材管理 素材上传 新增抖音图片检测接口 消息通知 达人搜索 收 ...

  4. 又是一年立冬时节,消防安全知识答题小程序v3.0千呼万唤始出来

    此去经年,又是一年立冬时节.回首过去,优质的消防安全知识竞答活动小程序v1.0刚出来,就收到了不少好评,我随即把源码分享出来. 当时正值立冬,"雪花飘飘北风萧萧~" 防火安全知识专 ...

  5. 啦啦外卖开源至尊独立稳定版小程序 V43.0+客户端+配送端+商户端多个小程序安装及配置教程

    啦啦外卖开源至尊独立稳定版公众号+小程序 V43.0版系统为独立开源版是一套非常不错的外卖系统,使用过的都知道该系统功能非常强大,是目前外卖平台功能最全的一套系统.最大优势全开源拿来即用,也非常合适做 ...

  6. 微信小程序从0到上线,程序员一个月开发一款小程序实录

    前言:本人从事游戏开发多年,是一名饱受折磨的游戏前端开发人员.游戏这个行业越来越难做,加班越来越严重.正值行业转变之际,听闻微信小程序热火之时,我想偿试一下小程序制作,因此,一个月之后有了这篇文章:微 ...

  7. 啦啦外卖公众号+小程序 V43.0开源至尊独立版+独家用户授权升级+小程序端+APP源码+小程序端VUE源码安装教程

    啦啦外卖跑腿平台开源至尊独立稳定版公众号+小程序 V43.0版系统为独立开源版,最大优势全开源,使用的都知道该系统功能非常强大,是目前外卖平台功能最全的一套系统.拿来即用,也非常合适做二开的朋友,包括 ...

  8. 求职招聘小程序 V4.0.75全解密开源运营版小程序

    简介: 1.多城市招聘平台 2.职位版块 3.人才版块 4.招聘会(支持企业在线报名参加招聘会) 5.职场资讯 6.企业登录(在手机端可操作企业信息编辑.发布职位.查收简历.通知面试) 7.企业VIP ...

  9. 答题活动小程序v3.0

    答题活动小程序v3.0 简介 答题活动小程序v3.0,基于云开发的微信答题小程序,软件架构是微信原生小程序+云开发. 主要包含六大功能模块页面,首页.答题页.结果页.活动规则页.答题记录页.排行榜页. ...

最新文章

  1. 1.20 Java8新特性:Effectively final
  2. Drools 6.2.0.Final发布
  3. git保留两个repo的commit并进行合并
  4. Fast R-CNN整体把握
  5. nginx下Thinkphp 隐藏index.php
  6. 数据挖掘前景及工作方向选择
  7. Atitit 热更新资源管理器 自动更新管理器 功能设计
  8. decimal保留千分位
  9. php共享单车项目教学,共享单车怎么充电的
  10. 多功能频谱分析仪TFN RMT系列,满足您对频谱分析仪的多种幻想。
  11. Windows7+CentOS双系统同一硬盘
  12. logback配置文件---logback.xml详解
  13. [角谷猜想 || 冰雹猜想]的一些瞎想
  14. WPF如何实现一款类似360安全卫士界面的程序?(共享源码!)
  15. 少儿Python编程2-计算机和信息处理
  16. 6.12 C语言练习([C语言训练]求函数值:按如下递归公式求函数值。 )
  17. 【python安装】其他支持库的安装
  18. 全球与中国pH复合电极市场深度研究分析报告
  19. 原生JS实现PC端无缝滚动轮播图、匀速轮播图、匀速动画
  20. 一站式linux0.11内核head.s代码段图表详解

热门文章

  1. 小明开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。糖果不能拆包卖
  2. Android自定义圆角矩形图片ImageView
  3. CorelDRAW X8窗口提示非法软件禁用解决方法最新教程分享
  4. MongoDB简单学习小总结
  5. C语言:简单的switch()函数,代码讲解
  6. Python TypeError: cat() takes no arguments
  7. 如何定义和使用一个 Lambda 表达式
  8. android分享视频到微信,android 分享文本、图片、音乐、视频到微信朋友圈、好友、我的收藏...
  9. Kitkat中对class core, class main, class late_start的简单分析
  10. 【C语言】求最小公倍数三种方法