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库

思路解析:


  1. 分析页面,如图所示,每个页面的预览图都在list这个列表集合下.每张图对应一个缩写的地址:"<a href="/desk/23791.htm…"

  2. 使用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()  # 获得初始地址
    

  3. 过滤不需要的地址

    ​ 查看链接获得高清图像的地址为: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
    

    最终获得如下地址列表:

  4. 解析高清图片所在网页,获得最终图片地址并下载

    ​ 从网页源码中获得图片地址,如下图:

    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)
    

    至此,第一个图片从解析到下载基本完成.

  5. 解析分页,获取更多图片下载地址

    ​ 分析网页地址变化规律得出地址为:

    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
    
  6. 封装一下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--抓取桌面壁纸相关推荐

  1. 牛逼了!100份Python爬虫实战源码+视频,开放获取

    这是之前总结的一些Python爬虫实战源码和视频,另外还总结了一些Python学习的知识手册,从Python基础.到web开发.数据分析.机器学习.深度学习.金融量化统统都有,该手册是HTML版本,左 ...

  2. python爬取app播放的视频,Python爬虫工程师必学——App数据抓取实战视频教程

    爬虫分为几大方向,WEB网页数据抓取.APP数据抓取.软件系统数据抓取.本课程主要为同学讲解如何用python实现App数据抓取,课程从开发环境搭建,App爬虫必备利器详解,项目实战,到最后的多App ...

  3. Python爬虫 | 斗图网表情包抓取

    Python爬虫 | 斗图网表情包抓取 1.数据来源分析 2.制作div_list 3.发起请求 4.保存图片 5.批量获取 6.完整代码 声明 1.数据来源分析   打开斗图吧的主页,发现网址非常有 ...

  4. Python爬虫实战(4):抓取淘宝MM照片

    Python爬虫入门(1):综述 Python爬虫入门(2):爬虫基础了解 Python爬虫入门(3):Urllib库的基本使用 Python爬虫入门(4):Urllib库的高级用法 Python爬虫 ...

  5. python爬虫requests源码链家_python数据分析实例:python抓取链家二手房源数据和分析...

    python语言,在数据分析方面,涵盖了"数据获取→数据处理→数据分析→数据可视化"这个流程中每个环节,不可不谓之为利器. 本篇文章我们就利用python语言在数据分析方面的应用, ...

  6. python爬虫技术源码_实战|手把手教你用Python爬虫(附详细源码)

    大家好,我是J哥,专注原创,致力于用浅显易懂的语言分享爬虫.数据分析及可视化等干货,希望人人都能学到新知识.最近J哥做了个爬虫小项目,感觉还挺适合新手入门的,于是迫不及待想分享给大家. 什么是爬虫? ...

  7. Python爬虫的源码

    利用Python批量下载百度图片 # !/usr/bin/env python # -*- coding:utf-8 -*-# 导入URLLIB库的编码方法 from urllib.parse imp ...

  8. python爬虫requests源码链家_python的爬虫项目(链家买二手房)

    不知不觉,已经工作6年有余,恍恍惚惚,有机会满足房子需求. 在收集房子信息过程中,做些记录. 贝壳的功能很强大,但很难满足小区.距离.教育.面积等多个方面的匹配,使用起来成本仍然较高. 针对以上情况, ...

  9. python爬虫框架源码_python爬虫的基本框架

    1.爬虫的基本流程: 通过requests库的get方法获得网站的url 浏览器打开网页源码分析元素节点 通过BeautifulSoup或者正则表达式提取想要的数据 储存数据到本地磁盘或者数据库 2. ...

最新文章

  1. 这些Python常用的工具和学习资源你都知道么?
  2. 《花田半亩》有感——午夜静静地震撼着我的生命(不是技术,发在首页,只是因为感动)...
  3. Java线程之守护线程(Daemon) .
  4. 使用网络进行项目托管
  5. [Hadoop]在Windows上安装Hadoop
  6. 职业年金退休能拿多少?怎么算的?
  7. ffmpeg前景_5G时代音视频开发前景怎么样?音视频开发需要掌握哪些技术?
  8. hdu 1003 Max Sum 简单动态规划
  9. python核心编程
  10. arping 本机出现 timeout 问题
  11. 使用 vlmcsd 部署 KMS 服务器
  12. Scara机器人正逆运动学分析
  13. 动态网页(JSP 文件)如何连接数据库(SQL Server)--看这里
  14. MongoDB4.0 配置文件
  15. linux系统下qt中文输入法,Ubuntu系统下Qt使用中文输入法(示例代码)
  16. Nyquist-Shannon采样定理的理解
  17. matplotlib 画图刻度尺控制
  18. UVA 10526 - Intellectual Property (后缀数组)
  19. 【网页设计】期末大作业html+css+js(在线鲜花盆栽网站)
  20. Swagger UI教程 API 文档神器 搭配Node使用

热门文章

  1. 人工智能最新研究发展方向——OCR文字识别简述
  2. Java基础 - 面板组件JPanel
  3. U当家U盘启动盘制作教程
  4. 用foobar2000转mp3 最强参数设置,fooCDtect cdda-100%
  5. 虽不能至,然心向往之
  6. VC6.0的MFC简单计算器制作
  7. 使用jqprint插件实现打印
  8. OJ练习01(C语言):jlh吃水果
  9. web应用程序安全工具和资源(漏洞银行 收集整理)
  10. 硬件架构的艺术-行波计数器笔记