IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> python爬取4K超清画质手机壁纸,壁纸这东西当然是越多越好啦~ -> 正文阅读

[开发工具]python爬取4K超清画质手机壁纸,壁纸这东西当然是越多越好啦~

前言

手机壁纸这东西大家都很熟悉吧,相信不论谁打开手机都希望自己的壁纸是自己喜欢的图片,

但是一张壁纸用久了就会想换一张新鲜感满满的图(当然排除情有独钟的),
在这里插入图片描述在这里插入图片描述在这里插入图片描述

但挑选图片的时间总是恒久的,有时长时间的挑选都不一定能选出自己心仪的那一张,还手累

那么咋直接来写个代码,自动下载自己感兴趣类型的手机壁纸

本次内容:

python爬取4K超清画质手机壁纸

开发环境

敲代码你们不能连敲代码的地方都没有叭👀

  • Python 3.8
  • Pycharm

如何配置pycharm里面的python解释器?

  1. 选择file(文件) >>> setting(设置) >>> Project(项目) >>> python interpreter(python解释器)
  2. 点击齿轮, 选择add
  3. 添加python安装路径
    请添加图片描述

pycharm如何安装插件?

  1. 选择file(文件) >>> setting(设置) >>> Plugins(插件)
  2. 点击 Marketplace 输入想要安装的插件名字 比如:翻译插件 输入 translation / 汉化插件 输入 Chinese
  3. 选择相应的插件点击 install(安装) 即可
  4. 安装成功之后 是会弹出 重启pycharm的选项 点击确定, 重启即可生效

模块使用

第一个模块是要安装的,不然即使你代码出来了,没有模块它还是会不高兴,会报错的呦,另两个模块是自带的,不需安装

  • requests >>> pip install requests 数据请求
  • re 正则 解析数据
  • os 自动创建文件夹

很多小伙伴安装模块时不知道怎么安装或报错原因,现在给大家详细讲解一下

  • 如果安装python第三方模块:
  1. win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车
  2. 在pycharm中点击Terminal(终端) 输入安装命令
  • 安装失败原因:
    • 失败一: pip 不是内部命令
      解决方法: 设置环境变量

    • 失败二: 出现大量报红 (read time out)
      解决方法: 因为是网络链接超时, 需要切换镜像源
      清华:https://pypi.tuna.tsinghua.edu.cn/simple
      阿里云:http://mirrors.aliyun.com/pypi/simple/
      中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
      华中理工大学:http://pypi.hustunique.com/
      山东理工大学:http://pypi.sdutlinux.org/
      豆瓣:http://pypi.douban.com/simple/
      例如:pip3 install -i https://pypi.doubanio.com/simple/ 模块名

    • 失败三: cmd里面显示已经安装过了, 或者安装成功了, 但是在pycharm里面还是无法导入
      解决方法: 可能安装了多个python版本 (anaconda 或者 python 安装一个即可) 卸载一个就好
      或者你pycharm里面python解释器没有设置好
      请添加图片描述

我们要实现一个爬虫案例

第一步要做事情:

就是去分析我们想要的这些数据内容, 可以从哪里获取 (开发者工具去抓包分析)

通过分析可以知道, 想要获取壁纸原图url >>> 获取每个壁纸详情页url >>> 列表页面获取 壁纸详情页

第二步就是我们的代码实现步骤

1. 发送请求, 对于壁纸列表页面发送请求
2. 获取数据, 获取服务器返回的response数据
3. 解析数据, 提取我们想要的 壁纸详情页url
4. 发送请求, 对于 壁纸详情页url 发送请求
5. 获取数据, 获取服务器返回的response数据
6. 解析数据, 提取我们想要图片url以及图片标题
7. 保存数据, 保存本地
8. 多页爬取, 根据壁纸列表页面变化规律去发送请求

代码展示

先来导入我们的数据请求的模块

import requests  # pip install requests

在导入正则表达式模块

import re  # 内置模块 不需要安装
for page in range(4, 11):
    print(f'===================正在爬取第{page}页的数据内容===================')
    #  1. 发送请求, 对于壁纸列表页面发送请求
    url = f'https://m.bcoderss.com/tag/%e5%8a%a8%e6%bc%ab/page/{page}/'
    # headers 请求头 作用就是伪装python代码
    # 如果被识别出是爬虫程序 就不会返回数据, 或者返回其他的数据
    headers = {
        'cookie': 'UM_distinctid=17dffa7aa3a189-048d4b23bef5a4-4303066-1fa400-17dffa7aa3bbfe; Hm_lvt_ce3020881c73bb20f0830ef4ed0a61fb=1640671718; CNZZDATA1278590218=1385918032-1640661155-%7C1640667485; Hm_lpvt_ce3020881c73bb20f0830ef4ed0a61fb=1640676345',
        'origin': 'https://m.bcoderss.com',
        'referer': url,
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36',
    }
    response = requests.post(url=url, headers=headers)
    # 2. 获取数据, 获取服务器返回的response数据 (文本数据)
    # print(response.text)  # 字符串类型
    # 3. 解析数据, 提取我们想要的 壁纸详情页url
    # 正则表达式, 就可以对于获取response.text 直接进行提取
    # 返回列表数据类型, 对于列表而言, 我不想要它第一个元素, 操作...
    # split() 这个是字符串方法 切片 列表元素位置 是从0开始计数
    # 通过re模块里面findall 方法 从response.text 里面找到所有 关于  <li><a target="_blank" href="(.*?)" 我们要的是()里面数据内容
    img_url_list = re.findall('<li><a target="_blank" href="(.*?)"', response.text)[1:]
    # 把列表里面的元素 一个一个提取出来
    for img_url in img_url_list:
        # 提取壁纸详情页url

请添加图片描述

        # 4. 发送请求, 对于 壁纸详情页url 发送请求
        response_1 = requests.get(url=img_url, headers=headers)
        # 5. 获取数据, 获取服务器返回的response数据
        # print(response_1.text) 获取文本数据
        # 6. 解析数据
        img_info = re.findall('<img alt=".*?" title="(.*?)" src="(.*?)">', response_1.text)[0]
        img_name = img_info[0]
        new_title = re.sub(r'[\/:*?"<>|\n]', '', img_name)
        img_link = img_info[1]
        # 7. 保存数据, 保存本地
        # 想要保存图片数据, 获取二进制数据
        img_content = requests.get(url=img_link, headers=headers).content  # response.content 获取二进制数据
        with open('img\\' + new_title + '.jpg', mode='wb') as f:
            f.write(img_content)
        print(img_name, img_link)

效果展示在这里插入图片描述

在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
好了,我的这篇文章写到这里就结束啦!

有更多建议或问题可以评论区或私信我哦!一起加油努力叭(? ?_?)?

喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-01-12 00:12:52  更:2022-01-12 00:15:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 12:26:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码