python爬虫120源码DIY--001--抓取桌面壁纸
python爬虫120源码DIY–001–抓取桌面壁纸
本次抓取所用目标网址:http://www.netbian.com/fengjing/,内含N多高清壁纸图,初始只是预览图,真正的高清图在后面,需要点开两次链接后获得,所以这里用爬虫组合出高清图地址并抓取之.
参考博文:
https://blog.csdn.net/hihell/article/details/117024328?utm_source=app&app_version=4.16.0&code=app_1562916241&uLinkId=usr1mkqgl919blen
原文用的是正则表达式和re模块,且下载的只是预览图,我在此基础上重新改写可获得高清图,本文仅供参考,提供一个思路
工具原料:
python3
requests库
parsel库
思路解析:
分析页面,如图所示,每个页面的预览图都在list这个列表集合下.每张图对应一个缩写的地址:"<a href="/desk/23791.htm…"
使用parsel库解析出最初的地址,其中夹杂了不需要的网址
url = 'http://www.netbian.com/fengjing/' response = requests.get(url) sel = parsel.Selector(response.content.decode('gbk')) lists = sel.css('.list li a::attr(href)').extract() # 获得初始地址
过滤不需要的地址
查看链接获得高清图像的地址为:http://www.netbian.com/desk/23791-1920x1080.htm,这里使用startswith()方法挑选出适合的地址并存入新列表,这里直接用一个函数清洗地址并重新组装
# 清洗组装地址 def clearurl(lists):nurls = []for i in lists:if i.startswith('/desk/'):i = wurl + i[:-4] + '-1920x1080.htm'nurls.append(i)return nurls
最终获得如下地址列表:
解析高清图片所在网页,获得最终图片地址并下载
从网页源码中获得图片地址,如下图:
gqurls = clearurl(lists)response = requests.get(gqurls[0]) #此处仅作测试,抽取第一个地址 sel = parsel.Selector(response.content.decode('gbk')) gpic = sel.css('td a::attr(href)').extract_first()image = requests.get(gpic).content with open('../eg001/'+'1.jpg', 'wb') as f:f.write(image)
至此,第一个图片从解析到下载基本完成.
解析分页,获取更多图片下载地址
分析网页地址变化规律得出地址为:
http://www.netbian.com/fengjing/index.htm
http://www.netbian.com/fengjing/index_2.htm
http://www.netbian.com/fengjing/index_3.htm
…
http://www.netbian.com/fengjing/index_205.htm
除了第一页地址不带序号,之后都是有规律的地址,将url地址重整为list形式
def urls():url_list = ['http://www.netbian.com/fengjing/index_{}.htm'.format(i) for i in range(2, 206)]url_list.insert(0, 'http://www.netbian.com/fengjing/')return url_list
封装一下sel对象
因为要重复调用sel对象解析网页,所以将sel做出函数形式
# 获得sel对象 def t_sel(url):response = requests.get(url)sel = parsel.Selector(response.content.decode('gbk'))return sel
完整源码:
#!/usr/bin/env python
# coding=utf-8'''
001号
壁纸爬取
http://www.netbian.com/fengjing/
'''import requests
import parselurl = 'http://www.netbian.com/fengjing/'
wurl = 'http://www.netbian.com'# 获得分页url地址列表
def urls():url_list = ['http://www.netbian.com/fengjing/index_{}.htm'.format(i) for i in range(2, 3)]url_list.insert(0, url)return url_list# 组装sel对象
def t_sel(url):response = requests.get(url)sel = parsel.Selector(response.content.decode('gbk'))return sel# 清洗组装获得高清地址
def clearurl(lists):nurls = []for i in lists:# print(i)if i.startswith('/desk/'):i = wurl + i[:-4] + '-1920x1080.htm'nurls.append(i)return nurlsdef savepic(gqurls):for g_url in gqurls:sel = t_sel(g_url)gpic = sel.css('td a::attr(href)').extract_first()image = requests.get(gpic).contentwith open('../eg001/' + str(g_url[28:-4]) + '.jpg', 'wb') as f:f.write(image)if __name__ == '__main__':ulist = urls()for url in ulist:sel = t_sel(url)lists = sel.css('.list li a::attr(href)').extract() # 获得初始地址gqurls = clearurl(lists)savepic(gqurls)
源码已上传存档
码云存档
python爬虫120源码DIY--001--抓取桌面壁纸相关推荐
- 牛逼了!100份Python爬虫实战源码+视频,开放获取
这是之前总结的一些Python爬虫实战源码和视频,另外还总结了一些Python学习的知识手册,从Python基础.到web开发.数据分析.机器学习.深度学习.金融量化统统都有,该手册是HTML版本,左 ...
- python爬取app播放的视频,Python爬虫工程师必学——App数据抓取实战视频教程
爬虫分为几大方向,WEB网页数据抓取.APP数据抓取.软件系统数据抓取.本课程主要为同学讲解如何用python实现App数据抓取,课程从开发环境搭建,App爬虫必备利器详解,项目实战,到最后的多App ...
- Python爬虫 | 斗图网表情包抓取
Python爬虫 | 斗图网表情包抓取 1.数据来源分析 2.制作div_list 3.发起请求 4.保存图片 5.批量获取 6.完整代码 声明 1.数据来源分析 打开斗图吧的主页,发现网址非常有 ...
- Python爬虫实战(4):抓取淘宝MM照片
Python爬虫入门(1):综述 Python爬虫入门(2):爬虫基础了解 Python爬虫入门(3):Urllib库的基本使用 Python爬虫入门(4):Urllib库的高级用法 Python爬虫 ...
- python爬虫requests源码链家_python数据分析实例:python抓取链家二手房源数据和分析...
python语言,在数据分析方面,涵盖了"数据获取→数据处理→数据分析→数据可视化"这个流程中每个环节,不可不谓之为利器. 本篇文章我们就利用python语言在数据分析方面的应用, ...
- python爬虫技术源码_实战|手把手教你用Python爬虫(附详细源码)
大家好,我是J哥,专注原创,致力于用浅显易懂的语言分享爬虫.数据分析及可视化等干货,希望人人都能学到新知识.最近J哥做了个爬虫小项目,感觉还挺适合新手入门的,于是迫不及待想分享给大家. 什么是爬虫? ...
- Python爬虫的源码
利用Python批量下载百度图片 # !/usr/bin/env python # -*- coding:utf-8 -*-# 导入URLLIB库的编码方法 from urllib.parse imp ...
- python爬虫requests源码链家_python的爬虫项目(链家买二手房)
不知不觉,已经工作6年有余,恍恍惚惚,有机会满足房子需求. 在收集房子信息过程中,做些记录. 贝壳的功能很强大,但很难满足小区.距离.教育.面积等多个方面的匹配,使用起来成本仍然较高. 针对以上情况, ...
- python爬虫框架源码_python爬虫的基本框架
1.爬虫的基本流程: 通过requests库的get方法获得网站的url 浏览器打开网页源码分析元素节点 通过BeautifulSoup或者正则表达式提取想要的数据 储存数据到本地磁盘或者数据库 2. ...
最新文章
- 这些Python常用的工具和学习资源你都知道么?
- 《花田半亩》有感——午夜静静地震撼着我的生命(不是技术,发在首页,只是因为感动)...
- Java线程之守护线程(Daemon) .
- 使用网络进行项目托管
- [Hadoop]在Windows上安装Hadoop
- 职业年金退休能拿多少?怎么算的?
- ffmpeg前景_5G时代音视频开发前景怎么样?音视频开发需要掌握哪些技术?
- hdu 1003 Max Sum 简单动态规划
- python核心编程
- arping 本机出现 timeout 问题
- 使用 vlmcsd 部署 KMS 服务器
- Scara机器人正逆运动学分析
- 动态网页(JSP 文件)如何连接数据库(SQL Server)--看这里
- MongoDB4.0 配置文件
- linux系统下qt中文输入法,Ubuntu系统下Qt使用中文输入法(示例代码)
- Nyquist-Shannon采样定理的理解
- matplotlib 画图刻度尺控制
- UVA 10526 - Intellectual Property (后缀数组)
- 【网页设计】期末大作业html+css+js(在线鲜花盆栽网站)
- Swagger UI教程 API 文档神器 搭配Node使用