【Python实战】爬虫教程千千万,一到实战全完蛋?我用Python爬取了五千张美女图壁纸,每天一张忘记初恋!(张张精品,盘它)

导语

天气越来越喜怒无常啦~

冷的时候出门恨不得裹成球,热的时候直接短衣短袖整起来!

下了一个星期的雨终于迎来了一个太阳天,超级满足,心情也变的好好啦~

今天让大家一起开心一下,什么事情才能让大家都开心起来呢?当然是看见美

美的高清壁纸。

🚀 **文章源码免费获取 :为了感谢每一个关注我的小可爱💓
每篇文章的项目源码都是无偿分享滴💓

PS——

宅男们梦寐以求的福利软件免费分享了,漂亮性感的美女图片一键采集,都是

4k高清壁纸采集后可一键保存,速度非常的快,舒服从此桌面全是小姐姐,

欧力给!

于是今天的推送主题啦,今天教大家一键采集某岸图网4k高清动漫、萌妹、

御姐....壁纸,让你的桌面每天都是美美的新皮肤~新的一天看见美好的事物总

不是一件坏事吧!

正文

一、环境准备中 

1)运行环境 环境安装:python 3.8: 解释器、pycharm: 代码编辑器、

requests、re。自带的

模块 直接安装Python就可以使用了。 

相对应的安装包/安装教程/激活码/使用教程/学 习资料/工具插件 可以直接找

我厚台获取 。 

 2)模块安装 

 第三方库的安装方式如下:

 一般安装:pip install +模块名  镜像源安装:pip install -i https://pypi.douban.com/simple/+模块名  (还有很多国内镜像源,这里是豆瓣的用习惯 了,其他镜像源可以去看下之前文章都有的) 

 模块安装问题可以详细的找我给大家讲一下的哈,之前其实也有的文章写了

几个点的。

二、爬虫的基本思路

1)数据来源分析 

 1. 明确需求: 采集的网站是什么? http://www.netbian.com/dongman/ 

采集的数据是什么? - 图片链接 - 图片名字。

2) 通过开发者工具抓包分析

图片链接/图片名字 数据内容在哪里可以获取到 <由小到大 先分析一张图片

数据在什么地方, 再

分析如何获取多张图片> 

 图片地址: http://img.netbian.com/file/2022/1229/225102KgBdj.jpg 

分析从哪生成的—打开开发者工具: F12 / 鼠标右键点击检查选择network 。

刷新网页: 让本网页数据内容重新加载一遍 - 搜索数据来源: 复制关键参数, 直

接进行搜索  225102KgBdj 搜索这个内容

第一张图片: http://www.netbian.com/desk/29381.htm 第二张图片: http://www.netbian.com/desk/29354.htm 第三张图片: http://www.netbian.com/desk/29295.htm 

主要改变的就是图片ID --> 如果你想要获取所有图片数据 ---> 获取所有图片

ID 图片ID 都在目录页面 http://www.netbian.com/dongman/ 有 目的获取

图片链接/图片名字 --->图片详情页 

http://www.netbian.com/desk/29381.htm --> 获取图片ID --> 图片目录

页面里面有 和正常访问网站观看图片一样的。

三、代码实现步骤

基本四个步骤 发送请求-->获取数据-->解析数据-->保存数据。

1)获取图片ID

 1. 发送请求, 模拟浏览器对于url地址发送请求

  请求 图片目录页面url http://www.netbian.com/dongman/ 

 2. 获取数据, 获取服务器返回响应数据 

 response 网页源代码 

 3. 解析数据, 提取我们想要的数据内容 

  图片ID 

2)获取图片链接/名字

 4. 发送请求, 模拟浏览器对于url地址发送请求 

 请求 图片详情页页面url http://www.netbian.com/desk/{图片ID}.htm 

 5. 获取数据, 获取服务器返回响应数据 

 response 网页源代码 

 6. 解析数据, 提取我们想要的数据内容

  图片链接 - 图片名字 - 保存数据。

  7. 保存数据, 保存本地文件夹。

四、完整的代码

"""
# 导入数据请求模块 --> 第三方模块, 需要安装 pip install requests
import requests
# 导入正则模块 --> 内置模块, 不需要安装
import re
"""
1. 发送请求, 模拟浏览器对于url地址发送请求
    - 模拟浏览器 <反爬处理> 请求头 <字典数据类型>
        如果你不伪装, 可能会被识别出来是爬虫程序, 从而得到数据内容
    可以直接复制粘贴 --> 开发者工具里面就可以复制
    
    - <Response [200]> 响应对象
        Response: 中文意思-->响应
        <>: 表示对象
        200: 状态码 表示请求成功
    发送请求, 请求成功了

分析请求url地址变化规律:
    第一页: http://www.netbian.com/dongman/
    第二页: http://www.netbian.com/dongman/index_2.htm
    第三页: http://www.netbian.com/dongman/index_3.htm
    第四页: http://www.netbian.com/dongman/index_4.htm
"""
for page in range(2, 11):
    print(f'=================正在采集第{page}页的数据内容=================')
    # 请求图片目录页面url
    url = f'http://www.netbian.com/dongman/index_{page}.htm'
    # 伪装模拟成浏览器
    headers = {
        # User-Agent 用户代理 浏览器基本身份信息
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
    }
    # 发送请求
    # 调用requests模块里面get请求方法, 对于url地址发送请求, 并且携带上headers请求头伪装, 最后用自定义变量名response接受返回的数据
    response = requests.get(url=url, headers=headers)
    """
    2. 获取数据, 获取服务器返回响应数据
        response 网页源代码
        response.text 获取响应文本数据 <网页源代码>
    3. 解析数据, 提取我们想要的数据内容
        - 图片ID
    正则表达式Re 会1 不会0
    调用re模块里面findall方法 --> 找到所有我们想要的数据
    re.findall('找什么数据', '从哪里找') --> 从什么地方, 去匹配找什么样的数据内容
    从 response.text<网页源代码> 里面 去找 <a href="/desk/(\d+).htm" 其中 (\d+) 就是我们要的内容
        \d+ 表示任意数字
    """
    # 提取图片ID --> 列表 <盒子/箱子> '29381' 是列表<箱子>里面元素<苹果>
    img_id_list = re.findall('<a href="/desk/(\d+).htm"', response.text)
    # for循环遍历, 把列表里面元素 一个一个提取出来
    for img_id in img_id_list:
        # img_id变量<袋子> 给 img_id_list 列表<盒子> 里面 元素<苹果> 给装起来
        print(img_id)
        """
        4. 发送请求, 模拟浏览器对于url地址发送请求
            - 请求 图片详情页页面url http://www.netbian.com/desk/{图片ID}.htm
        5. 获取数据, 获取服务器返回响应数据
            response 网页源代码
        """
        # 请求详情页链接 --> f'{img_id}' 字符串格式化方法
        link = f'http://www.netbian.com/desk/{img_id}.htm'
        # 发送请求
        response_1 = requests.get(url=link, headers=headers)
        # 获取数据内容 网页源代码 ---> 乱码了, 进行转码
        response_1.encoding = 'gbk'
        # 6. 解析数据, 提取我们想要的数据内容<图片链接/图片标题>
        img_url, img_title = re.findall('<img src="(.*?)" alt="(.*?)"', response_1.text)[0]
        # 7. 保存数据 --> 先获取图片数据内容
        img_content = requests.get(url=img_url, headers=headers).content
        with open('img\\' + img_title + '.jpg', mode='wb') as f:
            f.write(img_content)
        print(img_url, img_title)

五、效果展示

1)批量采集

2)高清壁纸分享

总结

这些壁纸可是我精挑细选,无敌美美哒又高清,每一张都超棒der,希望壁纸

的小可爱们

天天开心,快乐无敌!代码的话(免费)文末获取哈!自己也能随时下载了

哦~

Python经验分享

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

Python学习路线

这里把Python常用的技术点做了整理,有各个领域的知识点汇总,可以按照上面的知识点找对应的学习资源。
在这里插入图片描述

学习软件

Python常用的开发软件,会给大家节省很多时间。
在这里插入图片描述

学习视频

编程学习一定要多多看视频,书籍和视频结合起来学习才能事半功倍。
在这里插入图片描述

100道练习题

在这里插入图片描述

实战案例

光学理论是没用的,学习编程切忌纸上谈兵,一定要动手实操,将自己学到的知识运用到实际当中。
在这里插入图片描述
最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值