Python爬虫新手入门教学(十):爬取彼岸4K超清壁纸
前言
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。
Python爬虫、数据分析、网站开发等案例教程视频免费在线观看
https://space.bilibili.com/523606542
前文内容
Python爬虫新手入门教学(一):爬取豆瓣电影排行信息
Python爬虫新手入门教学(二):爬取小说
Python爬虫新手入门教学(三):爬取链家二手房数据
Python爬虫新手入门教学(四):爬取前程无忧招聘信息
Python爬虫新手入门教学(五):爬取B站视频弹幕
Python爬虫新手入门教学(六):制作词云图
Python爬虫新手入门教学(七):爬取腾讯视频弹幕
Python爬虫新手入门教学(八):爬取论坛文章保存成PDF
Python爬虫新手入门教学(九):多线程爬虫案例讲解
基本开发环境
- Python 3.6
- Pycharm
相关模块的使用
- re
- requests
安装Python并添加到环境变量,pip安装需要的相关模块即可。
一、明确需求
彼岸的壁纸,在我觉得是真的好看。虽然可以免费下载,但是对于有条件的小伙伴,还是可以支持一下付费的,毕竟不贵,只需要30元就可以全站无限制下载了。
二、网页数据分析
一步一步点击图片进去可以发现详情页的url地址是有由 图片ID 以及 图片分辨率 组成。
再次点击,之后可以看到图片的真实地址。如果你只是想要找一张壁纸图片的话,这样保存图片之后就高清的壁纸了。
如果是要爬取图片的话,在详情页的中是有图片链接的。
所以只需要在列表页中,获取图片的 ID 就可以了,因为我们爬取的本身就是 1920*1080的分辨率,所以这个分辨率的是固定的。只要获取 图片ID然后拼接url就可以了。
这里需要注意一个问题:
每页的数据当中,是有两个我们不需要的内容。
我们所需要的数据是附带 标题的,不需要的则是没有标题,所以可以根据这个进行一个判断。
三、代码实现
获取网页数据
def get_response(html_url):"""获取网页数据"""headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'}response = requests.get(url=html_url, headers=headers)return response
获取每张壁纸的ID
def main(html_url):"""获取图片ID"""response = get_response(html_url)selector = parsel.Selector(response.text)image_info = selector.css('.list ul li')for link in image_info:image_title = link.css('a::attr(title)').get()# 进行简单的判断,如果有标题就获取ID if image_title:id_info = link.css('a::attr(href)').get()# /desk/23177.htmimage_id = id_info.replace('.htm', '').split('/')[-1]
获取每张壁纸的url地址
def get_image_url(image_id):"""获取图片的真实url地址"""page_url = f'http://www.netbian.com/desk/{image_id}-1920x1080.htm'response = get_response(page_url)selector = parsel.Selector(response.text)image_url = selector.css('#endimg a::attr(href)').get()return image_url
保存壁纸
def save(image_url, title):filename = 'images\\' + title + '.jpg'image_content = get_response(image_url).contentwith open(filename, mode='wb') as f:f.write(image_content)print('正在保存:', title)
当我写完代码,运行的时候发现了一个问题
图片是能保存下来,但是它乱码了,所以需要在获取网页数据的函数里面加一行代码
# 万能的转码方式
response.encoding = response.apparent_encoding
更新代码之后,标题变成了中文了,但是又出现新的问题了
每个标题后面都是带有 更新时间的,返回网页看一下源代码。
a 标签里面的 title 属性里面是带有更新时间,img标签里面的alt属性是没有更新时间的,所以我们要重新提取一下标题数据。
更改后:
def main(html_url):"""获取图片ID"""response = get_response(html_url)selector = parsel.Selector(response.text)image_info = selector.css('.list ul li')for link in image_info:image_title = link.css('a::attr(title)').get()if image_title:title = link.css('a img::attr(alt)').get()id_info = link.css('a::attr(href)').get()# /desk/23177.htmimage_id = id_info.replace('.htm', '').split('/')[-1]
这些壁纸还挺大的,翻页根据页码进行翻页就好了,关于多线程爬取的话,可以参考上篇的文章内容。
Python爬虫新手入门教学(十):爬取彼岸4K超清壁纸相关推荐
- Python爬虫新手入门教学:爬取前程无忧招聘信息
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 基本开发环境 Python 3.6 Pycharm 相关模块的使用 requests parsel ...
- Python爬虫新手入门教学(十八):爬取yy全站小视频
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 https://space. ...
- Python爬虫新手入门教学(十六):爬取好看视频小视频
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 https://space. ...
- Python爬虫新手入门教学(十五):爬取网站音乐素材
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 https://space. ...
- Python爬虫新手入门教学(十四):爬取有声小说网站数据
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 https://space. ...
- Python爬虫新手入门教学(二十):爬取A站m3u8视频格式视频
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 前文内容 Python爬虫新手入门教学(一):爬取豆瓣电影排行信息 Python爬虫新手入门 ...
- Python爬虫新手入门教学(十七):爬取yy全站小视频
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 https://space. ...
- Python爬虫新手入门教学(十三):爬取高质量超清壁纸
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 https://space. ...
- Python爬虫新手入门教学(二):爬取小说
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 https://space. ...
最新文章
- 心跳实现_真强啊!建议每一位Java程序员都读读Dubbo心跳设计的源码...
- kali 安装volatility_虚拟机安装|给你双倍快乐
- java: 十六进制转八进制
- 安装oracle 12c 还用装11g_oracle12c-RAC安装部署之GRID安装
- rtsp视频解码-分析-转发http-flv ws-flv webrtc
- 不规则图形数格子的方法_北师大版五年级数学上册数学6.1组合图形的面积微课堂、同步练习、图文解读...
- 解决SVN安装语言包后无法选择中文的问题
- 驱动开发笔记2—PAGED_CODE(),IRQL,分页内存
- 虚拟机上无法运行ubuntu自带的gazebo仿真器报VMware: vmw_ioctl_command error 无效的参数
- saber软件安装后怎么打开_Saber2016安装包和安装详细安装步骤
- vue点击把某个区域变成图片数据
- vue打开外部页面_vue项目中嵌套外部网页
- 支持语音记事的便签怎么将声音文件转文字保存
- 论文笔记:Bootstrap Your Own Latent A New Approach to Self-Supervised Learning
- 何山无石,何水无鱼,何女无夫,何子无父,何树无枝,何城无市
- Spring Security 的 RememberMe 详解 !!!!!
- GTS-阿里巴巴全新分布式事务解决方案
- 2022年执业兽医考试模拟题及答案
- python快速读取大数据
- 『创新.领导力.工程师』丨陆奇怎么说?