优美库图片小程序 Version1.0
优美库图片小程序 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相关推荐
- 用云开发搭建的微信答题小程序v1.0
近来百无聊赖,遂抽空做了一个答题小程序的系列教程,以及分享源码,是用云开发搭建的微信答题小程序v1.0. 界面截图 该答题小程序大致如下图: 结构层级 主要程序由3个界面组成,分别是index,tes ...
- 全云端万能小程序_百搜全云端万能门店小程序v4.0.13五端独家2次开发升级独立版...
百搜全云端五端万能小程序独立版简介: 包含:百度小程序,支付宝小程序,微信小程序,头条小程序,QQ小程序,H5,PC商城. 功能:支持小程序一键上传极速审核,对接微信开放平台发布使用,也可以单独使用开 ...
- 抖音壁纸小程序v1.0.2版本功能,新增达人入住功能
抖音壁纸小程序v1.0.2版本功能 抖音壁纸小程序源代码 此次新增和优化功能如下: 达人入住 达人审核 收益管理 下载壁纸页面UI优化 素材管理 素材上传 新增抖音图片检测接口 消息通知 达人搜索 收 ...
- 又是一年立冬时节,消防安全知识答题小程序v3.0千呼万唤始出来
此去经年,又是一年立冬时节.回首过去,优质的消防安全知识竞答活动小程序v1.0刚出来,就收到了不少好评,我随即把源码分享出来. 当时正值立冬,"雪花飘飘北风萧萧~" 防火安全知识专 ...
- 啦啦外卖开源至尊独立稳定版小程序 V43.0+客户端+配送端+商户端多个小程序安装及配置教程
啦啦外卖开源至尊独立稳定版公众号+小程序 V43.0版系统为独立开源版是一套非常不错的外卖系统,使用过的都知道该系统功能非常强大,是目前外卖平台功能最全的一套系统.最大优势全开源拿来即用,也非常合适做 ...
- 微信小程序从0到上线,程序员一个月开发一款小程序实录
前言:本人从事游戏开发多年,是一名饱受折磨的游戏前端开发人员.游戏这个行业越来越难做,加班越来越严重.正值行业转变之际,听闻微信小程序热火之时,我想偿试一下小程序制作,因此,一个月之后有了这篇文章:微 ...
- 啦啦外卖公众号+小程序 V43.0开源至尊独立版+独家用户授权升级+小程序端+APP源码+小程序端VUE源码安装教程
啦啦外卖跑腿平台开源至尊独立稳定版公众号+小程序 V43.0版系统为独立开源版,最大优势全开源,使用的都知道该系统功能非常强大,是目前外卖平台功能最全的一套系统.拿来即用,也非常合适做二开的朋友,包括 ...
- 求职招聘小程序 V4.0.75全解密开源运营版小程序
简介: 1.多城市招聘平台 2.职位版块 3.人才版块 4.招聘会(支持企业在线报名参加招聘会) 5.职场资讯 6.企业登录(在手机端可操作企业信息编辑.发布职位.查收简历.通知面试) 7.企业VIP ...
- 答题活动小程序v3.0
答题活动小程序v3.0 简介 答题活动小程序v3.0,基于云开发的微信答题小程序,软件架构是微信原生小程序+云开发. 主要包含六大功能模块页面,首页.答题页.结果页.活动规则页.答题记录页.排行榜页. ...
最新文章
- java hibernate oracle,Java笔记8:Hibernate连接Oracle
- c语言链表p-%3enext,课程设计报告.c语言程序设计.pdf
- [COCI2017-2018#5] Karte
- 前端学习(2324):angular初步使用
- PHP XML操作类 xml2array -- 含节点属性
- Java之设计模式详解 (转)
- 浙大 PAT b1018
- 【观点讨论与支撑】真的是而立之年没有立,以后就没有希望了吗?
- java基础47 装饰着模式设计
- iOS开发_UI_AutoLayout
- Vision Assistant Minimum Scree Resolution
- 真正的免费云时代来临,免费1T全能空间提供1T免费全能空间申请,
- 2022.11.11 CodeForces1324D Pair of Topics
- SQL 身份证获取性别
- 年老时最后悔但为时已晚的几件事
- 好书分享 《将来的你一定感谢现在拼命的自己》
- 为什么高级Android程序员永远不必担心自己的技术过时?
- Python中字符串常见操作总结
- MacOS下安装及配置Maven
- 下载安装指定版本的pandas
热门文章
- 怎么设置CAD多段线线宽?CAD多段线线宽设置技巧
- Windows 11 新功能 Microsoft Teams
- 1.STM32F103-点亮第一颗LED
- java学习总结(16.07.16)Random类和BigDecimal类
- linux startx无效_LINUX startx命令-用来启动X Window
- cad2016的自动修复此计算机,CAD中遇到文件损坏,别着急,这几招能帮你挽回损失...
- 用计算机数字唱歌,悬赏跪求计算器各种歌曲数字谱(最好带和音)
- Unable to open JDBC Connection for DDL execution
- 数字IC后端需要学习什么?需要具备哪些技能?
- node文件通过不同的后缀名解析不同的文件类型