python

为了完美食用本篇教程贴,搭建好如下环境

可以上互联网的win7或win10电脑一台

火狐浏览器(版本无要求)

Python(版本3就可以了)

requests库(版本没啥要求)

lxml库(版本:4.3.3,需要带有etree的lxml库)

需求分析

我们本次要爬取的网页是:千图网背景图片模块

我们【右键】下面的四张背景图片中的其中一张,在弹出的选项栏中选择【查看元素】,查看背景图片的网页代码在这里插入图片描述

可以看到图片指向了一个url,我们将这个url复制出来,在新的标签页中打开。看看,是不是到了图片的高清大图页面。

url链接【//www.58pic.com/newpic/33945157.html】

可以看到进入了图片的高清大图页面。证明,我们最开始打开的页面

我们在看看能不能在背景图片详情页面的源代码中找到图片对应的url,如果有url,我们就可以直接请求url下载高清大图了,就能实现和登陆下载一样的效果。

【右键】图片,点击【查看元素】,即可跳转到网页源代码中图片源码的位置

打开后的页面如下:

可以看到高清大图的url存在于页面的源代码当中。我们将这个图片的网址复制出来,在新页面中打开看看,是不是对应的这张图片。

图片链接【//pic.qiantucdn.com/back_origin_pic/05/63/65/2484f933a50db5e542da4d3a4f1ea31c.jpg!/fw/1024/watermark/url/L2ltYWdlcy93YXRlcm1hcmsvc2h1aXlpbi5wbmc=/repeat/true】

提示referer头错误,证明下载图片时,请求头中需要携带referer参数。

那这个referer参数是干啥的呢(⊙o⊙)?

referer你可以理解为告诉网站服务器,我是从哪个网页跳转过来的。

我们现在总解下上面分析的内容:

2.详情页的url中包含有高清大图的详细url

3.请求高清大图的url时需要在请求头中携带referer参数

好腻害,我们居然猜到了网页设计着的思路╰( ̄ω ̄o)

话不多说,我们来写python代码

实战代码

前提参数

首先我们先写下这些代码

#-*-coding:utf-8-*-

#作者:猫先生的早茶

第一行#-*-coding:utf-8-*-的意思时指点该程序使用的utf-8编码,这个utf-8编码是干啥的呢?这里博主先不做讲解,我们先指导程序的开头需要写上这句代码就可以了。(づ ̄3 ̄)づ皮一下,很开心。

第二行和第三行不是必须要写的,可以省略。。。。

导入模块

我们接在在导入要使用的模块

importrequests

fromlxmlimportetree

这个requests的作用你可以理解为是获取网页代码的,etree的作用类似于转换网页格式,并提取我们想要的信息。

设置变量

我们现在要去设置好接下来会使用到的变量.

headers={'User-Agent':'Mozilla/5.0(WindowsNT10.0;WOW64;rv:66.0)Gecko/20100101Firefox/66.0',

这个main_url指的就是我们首先要爬取的主页面的url,

headers存储的就是请求头信息,什么是请求头呢?就是用于告诉服务器我的信息,

headers中的User-Agent参数就是告诉服务器我使用的浏览器版本信息,我使用的这个就是告诉服务器,我使用的是火狐浏览器,是一台win10,64位的电脑。

headers中的Referer参数用于表示我是从哪个网页跳转过去的。

网页下载函数

现在我们先一个函数用于请求网页代码,需要传递url作为参数,会将下载到的网页代码作为返回值弹出

defget_html(url):

'''下载网页代码'''

html=requests.get(url,headers).text

returnhtml

我们定义了一个get_html函数专门用于下载网页代码,每次使用这个函数下载网页代码时,需要给其传递一个url参数。

函数中,我使用requests库的get方法下载了网页的源代码,get方法使用了变量url和变量headers作为参数,这里的变量url,就是函数调用时传递的url参数,headers是我们在步骤2导入模块中设置的变量,用于作为请求头,我们讲下载到的网页代码的以文本的形式存储在变量html中,然后讲网页代码作为函数的执行结果弹出

我们先测试下执行效果

html=get_html(main_url)

print(html)

可以看到,我们成功的下载到了网页的源代码,好棒,好棒。鼓掌鼓掌ˋ(°▽、°)

现在我们能下载到网页的源代码了,还需要提取出来网页代码中图片的详情页面的url

爬取图片详细页url

defget_page_url(data):

'''提取详情页url'''

html=etree.HTML(data)

returnurl_list

这里我们创建了一个名为get_page_url的函数专门用于提取主页面源代码中的图片详情页的url,调用该函数时需要将主页面的源代码作为参数传递进来。

首先我先使用etree.HTML()将传递进来的源代码html,转换为etree格式的数据,然后使用xpath匹配出了网页源代码中的所有图片详情页面的url

我们调用查看下效果:

url_list=get_page_url(html)

print(url_list)

现在我们获取到了图片详情页的url了,接着获取图片详情页的源代码

获取详情页源码

forurlinurl_list:

当前我们的代码如下:

实现了获取主页面的源码,然后提取出详情页的url,接着在获取详情页的源码。

执行后可以看到我们下载到了图片详情页的源代码了。

我们也能获取详情页面的源码了,接着就该提取出详情页中的高清大图的url

获取高清大图url和标题

我们还需要编写一个函数用于提取高清大图url和title,url用于作为图片的下载地址,title用于作为图片的保存名称

defget_img_url(data):

'''提取高清大图url'''

returnurl,title

这里我们创建了一个名为get_img_info的函数专门用于提取详情页代码中的图片信息,包括图片的url和图片的标题,调用该函数时需要将详情页的源代码作为参数传递进来。

首先我先使用etree.HTML()将传递进来的源代码html转换为etree格式的数据,然后使用xpath匹配出了网页源代码中的图片的url和title

为啥xpath后面要写[0]呢?,因为xpath默认匹配出的数据是以列表的形式存在的(ω),为了将内容提取出来所以要加[0],为啥匹配title的xpath最后面还有【+‘.jpg’】,应为此时只有文件名,没有后缀,所以博主这里使用【+】加号将其拼接成完整的文件名。然后使用return将图片的url和图片的名称传递出来。

下载并保存图片

现在我们也有了图片的url和名称了,就差下载保存图片了。首先我们在程序所在的创建一个名为picture用于保存下载的图片。然后编写一个函数专门用于下载图片

defget_img(url,file):

'''下载图片'''

file_name='picture\\'+file

img=requests.get(url,headers=headers).content

withopen(file_name,'wb')assave_img:

save_img.write(img)

这里我们创建了一个名为get_img的函数专门用于下载图片,包括下载图片和保存图片到指定目录下,调用该函数时需要将图片的网址和文件名作为参数传递进来。

首先我将保存的文件夹和文件名合并得到图片完整的存放路径,然后使用requests库的get方法下载图片的二进制数据,将url和headers传递给get方法,headers作为get方法的请求头。将得到的图片数据保存到指定的文件中。

THE END
1.掌握网页设计源码的技巧与实践,让你的创意在网络世界中绽放光彩网页设计是现代数字创意的重要组成部分,掌握网页设计源码的技巧与实践,不仅能提升个人的技术能力,还能让创意在网络世界中绽放光彩。 打开网易新闻 查看精彩图片 本文将从六个方面详细探讨如何有效掌握网页设计源码,包括基础知识的学习、设计工具的选择、编码语言的掌握、响应式设计的实现、用户体验的优化以及持续学习与实践...https://m.163.com/dy/article/JGG1RTFM05569BV4.html
2.0035如何设置网页背景图和在网页中插入图片前面从网络上找到了,可以重复显示的背景图片,下面修改背景图片看看效果如何。 css代码修改如下: 2-9-9.jpg 刷新页面: 2-9-10.jpg img标签和属性 背景图片是一个有效改变网页显示效果的方法,而图片更是一个网站上最常用的元素,利用好图片,可以让网页看起来更简洁美观大气,简称“高大上”。 现在就来讲讲如何在...https://www.jianshu.com/p/2ec25592e527
3.网页设计需要了解的相关知识小的本身是一个平面设计人员,前一阵儿有一些空闲的时间,便在各个站长网上发布了贴子,大意是免费制作logo,以换取网站连接(相信很多人都看过),半个月的时间做了80多个个人站或企业的logo,认识到了许许多多的站长,他们人都很好,但是其中一些站长由于由于对美工知识过于匮乏,导致了诸如让我直接给图片加连接,把橙色当作...http://www2.hnsyu.net/syxywlzx/jszc/wlxxaq/201012/t20101212_46968.html
4.网页背景代码及使用方法博客背景网页的两种代码,依靠这两种代码可以随便修改任意一篇日志里的背景效果。把两组代码里的任意一种复制修改加入进新日志的源码模式内,就能覆盖掉文学博客模板里设置的背景效果。 新版背景代码:(方法) 日志文字 代码中,白底红字的部分是需要修改的,图片地址不用说了吧?高度,可以改成 100% ,也可以改...http://www.360doc.com/content/12/1209/18/651210_253062916.shtml
5.2020信息技术网页选择判断题C. 背景 D. 鼠标上滚链接 6. 下面哪个选项不属于Dreamweaver编辑的视图模式( ) A. 代码视图 B. 设计视图 C. 标准视图 D. 拆分视图 7. 下列关于网页中插入图片的说法,不正确的是( ) A. 网页上常用的图片格式是GIF和JPG B. 网页上使用的图片,应在使用前用图片处理软件进行调整和修饰 C. 网页使用的...https://www.wjx.cn/jq/95882900.aspx
1.猩爱们!你们要的HTML的css网页美化之背景设置教程来啦!看完让你秒...页面背景图片设置实例: 实例 body{background-image:url('paper.gif');} 1 下面是一个例子是一个糟糕的文字和背景图像组合。文本可读性差: 实例 body{background-image:url('bgdesert.jpg');} 1 背景图像 - 水平或垂直平铺 默认情况下 background-image 属性会在页面的水平或者垂直方向平铺。 https://blog.csdn.net/2403_87236754/article/details/143660138
2.html5静态网页制作代码mob649e8156b567的技术博客这段代码展示了一个基本的HTML5网页结构,包括头部、主体和尾部信息。我们可以在其中添加更多的内容和样式,使其更加丰富。 CSS样式 为了使网页更具吸引力,我们使用CSS为其设计样式。以下是一个简单的CSS文件(styles.css)示例: body{font-family:Arial,sans-serif;line-height:1.6;margin:0;padding:0;background-col...https://blog.51cto.com/u_16175443/12495069
3.html网页背景图片代码,励志背景图素材励志文学真的可以鼓励人们,17素材网小编分享一款html网页背景图片代码,励志背景图素材,人推石头的画面,适用于励志、读书等网页中。https://www.17sucai.com/pins/49525.html
4.怎么提取官网背景图片这些方法包括使用浏览器开发者工具来提取背景图片的URL,使用截图工具进行高质量的截图,查看网页的源代码以搜索背景图片的URL,以及主动联系官方寻求帮助。博文最后强调了提取官网背景图片的重要性,并鼓励读者根据自己的实际情况选择适合自己的方法。无论是网站设计师或开发者,都可以通过提取官网背景图片来丰富设计素材库,并...https://tool.a5.cn/article/show/36522.html
5.网站推广策划书(精选12篇)(4)网站形象页的设计突出在“景点介绍”,通过文字、形像、图片的巧妙哄托,令页面富有层次感,达到赏心悦目的效果。 (5)页面的大小,只要在800x600下和1024x68分辩率下均能正常显示即可。 (6)背景图片的下方,设置栏目导航。 (7)颜色调配设计,网页的色彩是树立网站形象的关键之一,各版块采用与网站首页同一色系的颜...https://www.ruiwen.com/cehuashu/1453669.html
6.20个超人气配色网站,轻松get设计大师同款配色Uigradients收录了近百种渐变色配色方案,可以直接下载使用或复制CSS代码用于其他设计,网站支持用户自行添加优质配色方案。 十、Color Leap 色彩时光机 网站地址: https://colorleap.app/home 网站介绍: Color Leap整理了公元2000年到上世纪60年代间的流行色彩,用户可以通过年份来切换主题色,在艺术品及名画中采集复古配色...https://www.digitaling.com/articles/757287.html
7.黑色网页背景图黑色网页背景图素材黑色网页背景图大全下载觅知网为您找到131个原创黑色网页背景图设计图片,包括黑色网页背景图图片,黑色网页背景图素材,黑色网页背景图海报,黑色网页背景图背景,黑色网页背景图模板源文件下载服务,包含PSD、PNG、JPG、AI、CDR等格式素材,更多关于黑色网页背景图素材、图片、海报、背景、插画https://www.51miz.com/so-sucai/2967766.html
8.世界大学城空间建设问题解答皮肤(背景):将图片上传为文章的附件,或上传到相册中,然后获取图片的URL,将URL填写进设置界面,还可选择固定|滚动,背景。整体背景图片的宽和高设为1350*800较为合适。 空间代码:对空间进行美化设计的DIV+CSS的代码,写入此处。如设置首页的背景颜色、各模块背景颜色、字体等。对代码感兴趣的同学,可访问:新版大学城空...http://nic.ccsu.cn/info/1189/2023.htm
9.帝国CMS源码模版代码图片设计素材4K高清免费壁纸欢迎来到帝国CMS源码模版宝库!我们是一个专注于提供高质量、免费且多样化的网站设计资源的平台。在这里,您不仅可以找到精心制作的帝国CMS源码模版,还能探索到丰富的代码示例、精美的图片素材,以及令人惊艳的4K高清免费壁纸。https://www.moyublog.com/?replytocom=50
10.前端水印的简单实现代码示例html5网页制作2. canvas+背景图 我们知道,可以给 div 设置样式 background,我们可以很轻松的实现背景图片,那么水印也可以通过这种方式来实现,其中背景图片通过 canvas 画出来,并且通过 toDataURL() 将图片转为 dataURL(base64),最后追加到 background-image 样式中。 https://www.jb51.net/html5/754752.html
11.HTML入门:如何在HTML中设置背景图片图片版权:使用他人创作的图片时,需要注意版权问题,尽量使用经过授权的图片或者自己创作的图片。 在实际的网页设计中,还有很多关于背景图的技巧和注意事项,需要不断学习和掌握。 总结 在本文中,我们介绍了在HTML中设置背景图的方法,以及与背景图相关的一些知识点。更多的HTML入门内容可以在这里了解到更多,可以帮助小伙伴...https://m.w3cschool.cn/article/6935481.html
12.UI设计中动态视频背景如何制作在我们之前的APP、网页设计中高质量的背景图片、插画、高饱和度渐变等是常见的设计手法,可谓是“一张图片胜过千言万语”但同质化越来越严重,审美疲劳的用户也无法得到更好地体验。 随着我们网速的提升、5G的到来以及互联网开发技术的升级,尤其是HTML5技术对各大浏览器兼容性的不断完善,将视频作为背景素材进行使用,...https://www.uishe.cn/129060.html
13.css+div网页设计(一)–基础知识腾讯云开发者社区b、背景图片反复 举例: 代码语言:javascript 复制 背景反复<!--body{padding:0px;margin:0px;background-image:url(bg1.jpg);/* 背景图片 */background-repeat:repeat-y;/* 垂直方向反复 */background-color:#0066FF;/* 背景颜色 */}--> e、背景图片位置 代码语言:javascript 复制 background-position...https://cloud.tencent.com/developer/article/1917292