python爬虫-单线程爬取图片

2023-10-31

今天我们准备使用爬虫来爬取一些图片首先我们找到其url页面
https://pvp.qq.com/web201605/wallpaper.shtml,进入之后当我们点击跳转页面的时候,发现其上方的网址没有发生变化,如果不发生变化的话就不可以进行翻页操作,于是我们找到源代码,发现源码下面竟然没有任何的数据。于是我们猜想可能是把它藏到了别的地方于是我们点击后台network,找到了这个:

workList_inc.cgi?activityId=2735&sVerifyCode=ABCD&…26

然后我们继续点击他的response,看到里面的json文件,并在json.cn中对其进行了解析,我们发现确实把信息都藏在了这里。包括翻页、对应的图片等。
但是我们发现这些照片的url是经过加密的,所以我们要对其进行解析,parse解密。于是我们现在可以获取到网页的翻页信息,同时也可以找到网页中壁纸的url,那么我们就开始本次爬虫:

import requests
from urllib import parse
from urllib import request #对照片进行下载需要的库
import os #对文件的操作库

headers={'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36',
        }#首先我们找到headers
def explanin_data(data):#解码函数
    image_urls=[]
    for x in range(1,9):#因为一张图对应八张分辨率不同的图片且都需要解码
        image_url= parse.unquote(data['sProdImgNo_%d'%x]).replace('200','0')
        #这里将url中的x由200替换成0 表示获取到高清壁纸
        image_urls.append(image_url)
    return image_urls
def main():
    for page in range(9):#我们只爬取9页,可以自由调节
        page_url=f'https://apps.game.qq.com/cgi-bin/ams/module/ishow/V1.0/query/workList_inc.cgi?activityId=2735&sVerifyCode=ABCD&sDataType=JSON&iListNum=20&totalpage=0&page={page}&iOrder=0&iSortNumClose=1&iAMSActivityId=51991&_everyRead=true&iTypeId=2&iFlowId=267733&iActId=2735&iModuleId=2735&_=1649850019827'
        resp=requests.get(page_url,headers=headers)
        #访问网页源码
        result=resp.json()
        #json一下,变成json格式
        datas=result['List']
        #找到result中的List标签,照片信息全部在这里
        for data in datas:
            image_urls=explanin_data(data)
            #对照片解码并替换成高清
            name=parse.unquote(data['sProdName'])
            #对文件名字进行解码
            dirpath=os.path.join('image',name)
            #os文件操作,文件明的拼接
            os.mkdir(dirpath)
            #创建文件
            for index,image_url in enumerate(image_urls):
            #重要的函数enumerate!!!! 可同时提取索引和内容
                request.urlretrieve(image_url,os.path.join(dirpath,"%d.jpg"%(index+1)))#进行下载
                print('%s下载完成'%image_url)


if __name__ == '__main__':
    main()

这就是我们本次爬虫的全部内容,其中确实有很多很多内容需要学习,我们要知其所以然,感谢各位大佬得观看,看完了麻烦点个赞,谢谢大家啦!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python爬虫-单线程爬取图片 的相关文章

随机推荐

  • OpenBrush 工程项目源码学习(一):在macOS编译至Oculus Quest 2运行

    开发环境 MacBook Pro 2017 macOS Big Sur Version 11 6 Unity 2021 3 4 f1 步骤 Step 1 访问 https github com icosa gallery open brus
  • kafka_2.12-3.1.0集群安装配置(zookeeper-3.6.3)

    文章目录 安装kafka 2 12 3 1 0 安装环境 安装步骤 1 下载安装包 2 修改配置文件 修改server properties 添加环境变量 3 启动kafka 安装kafka 2 12 3 1 0 安装环境 CentOS版本
  • 【笔记:模拟MOS集成电路】带隙基准(基本原理+电流模+电压模电路详解)

    在模拟电路中 广泛的包含电压基准和电流基准 而且电路增益 输出噪声和功耗等参数常与基准直接相关 这种基准一般是直流量 要求基准与电源 工艺参数以及温度无关 PVT 而下面要讨论的带隙基准 主要作用就是建立一个与温度无关的基准源 产生基准的目
  • rest以及restful的基本理解

    传统下的API接口 http是目前在互联网上使用最多的协议 没有之一 可是http的创始人一直都觉得 在过去10几年来 所有的人都在错误的使用Http 这句话怎么说呢 如果说你要删除一个数据 以往的做法通常是 delete id 如果你要更
  • 电脑抓屏按钮使用:

    键盘上 Print Screen Sys Rq 键的作用是屏幕抓图 用法一 按 Print Screen SysRq 一下 对当前屏幕进行抓图 就是整个显示屏的内容 用法二 先按住 Alt 键 再按 Print Screen SysRq 键
  • HBase高手之路1-Hbase简介

    文章目录 HBase高手之路1 Hbase简介 一 什么是HBase 1 HBase简介 2 HBase的发展过程 二 HBase特点 1 海量存储 2 列式存储 3 极易扩展 4 高并发 5 稀疏 6 强一致性读 写 7 自动分块 8 自
  • Web服务器的搭建

    一 Web服务器简介 Web服务器的基本功能是提供web信息浏览服务 主要涉及的协议是HTTP协议 二 Web服务器的搭建 1 安装httpd包 2 关闭防火墙 3 启动httpd服务 4 备份conf文件 5 配置浏览器网页读取的根目录
  • 微服务相关面试要点

    什么是springboot 用来简化spring应用的初始搭建以及开发过程 使用特定的方式来进行配置 properties或yml文件 创建独立的spring引用程序 main方法运行 嵌入的Tomcat 无需部署war文件 简化maven
  • python读视频文件_python读取和保存视频文件

    如何用python实现视频关键帧提取并保存为图片 也许你会觉得对小编多做一点事你会觉得你很爽 可是在小编看来这是不屑的 import cv2vc cv2 VideoCapture Test avi 读入视频文件c 1if vc isOpen
  • linux安装anaconda

    linux安装anaconda 1 下载anaconda Conda 是一个强大的包管理器和环境管理器 您可以在 Windows 的 Anaconda Prompt 或 macOS 或 Linux 的终端窗口中与命令行命令一起使用 换句话说
  • Linux Socket网络编程 循环互相通信

    一 效果展示 持续互相通信 上面是服务端 下面为客户端加上ip 最后客户端输入exit退出 二 代码展示 服务端 server c include
  • Leetcode刷题:空间缩减思想

    文章目录 167 两数之和 II 输入有序数组 11 盛最多水的容器 240 搜索二维矩阵 II 11 盛最多水的容器 暴力 空间缩减 证明 二分 167 两数之和 II 输入有序数组 167 两数之和 II 输入有序数组 1 二分 cla
  • R语言在图上标出点坐标_R语言做图plot参数

    R语言做图plot参数函数名称 plot 用 途 作图 用 法 plot x y 参 数 1 符号和线条 pch 指定绘制点所使用的符号 取值范围 0 24 其中4是 差号 20是 点 cex 指定符号的大小 cex是一个数值 表示pch的
  • NVIDIA GeFprce GTX 1080 Ti NVIDIA图形驱动程序版本466.77下载和安装

    前言 在win7下 NVIDIA GeFprce GTX 1080 Ti NVIDIA图形驱动程序版本466 77下载和安装 但安装时系统报错 缺少KB4474419和KB4490628补丁 解决 NVIDIA GeFprce GTX 10
  • win10解决COM Surrogate问题

    Fix Problems with COM Surrogate on Windows 10 For various PC problems we recommend to use this tool This tool will repai
  • NPN和PNP 的电流方向 、大小关系 、电压偏置

    电流流向 NPN三极管 电流方向为基极流向发射极 驱动电流从基极流入 集电极流向发射极 PNP三极管 电流方向为发射极流向基极 驱动电流从基极流出 发射极流向集电极 PNP的电流方向是从下往上流的 但是在实际电路图中 大多还是发射极连接高电
  • 【LVGL事件(Events)】事件在不同组件上的应用(一)

    点击 滑动 输入 数字改变等等都可触发事件 事件就是针对不同的操作做出相对应的反应 最近看到组态屏 这玩意开发起来好像挺简单的 哈哈哈 研究完LVGL的事件就看看这个 LVGL事件 Events 事件代码 喜暖知寒的博客 CSDN博客LVG
  • 如何监听edittext输入完成

    转载于 http blog csdn net harryweasley article details 50395209 假如你要做这样的一个功能 通过在编辑框输入一些字符进行搜索 输入完成后 再显示搜索结果 在输入的过程中 并不想一直通知
  • ffmpeg命令行太多了_如何使用FFmpeg从视频中删除多个片段?

    我编写了一个脚本来加快编辑录制的电视的速度 该脚本会询问您要保留的段的开始和结束时间 并将其拆分为文件 它为您提供了选择 您可以 采取一个或多个细分 您可以将这些段合并为一个结果文件 加入后 您可以保留或删除零件文件 您可以保留原始文件或将
  • python爬虫-单线程爬取图片

    今天我们准备使用爬虫来爬取一些图片首先我们找到其url页面 https pvp qq com web201605 wallpaper shtml 进入之后当我们点击跳转页面的时候 发现其上方的网址没有发生变化 如果不发生变化的话就不可以进行