当前位置: 首页 > news >正文

爬取极简壁纸

js反编译的代码需要解密之类的,直接给我干蒙圈了,借助selenium可以直接获取到调式工具中的源码,可以获取渲染后的链接,然后将链接交给下载函数(使用异步提高效率)即可。

后续学习完js反编译的话,我会再写一篇教学,介绍js反编译爬取。

主要还是,获取当前页面之后,找到按钮点击下一次,如果下载过程中出现验证码的话,可以加一个判断,使用超级鹰或者是图鉴的python脚本,就可以通过验证了,但是每次验证是需要消耗题分。如果不想花钱的可以找一个训练成功的模型下载使用。

很良心的网站,希望大家合理获取,做一个守法的爬虫。

代码:

import time
from selenium import webdriver
import asyncio
import aiofiles
import aiohttpheaders = {'Referer': 'https://bz.zzzmh.cn/',"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
}
async def download(href,count):print(f"第{count}图片开始缓存")try:async with aiohttp.ClientSession() as session:async with session.get(href,headers=headers) as p:data = await p.read()async with aiofiles.open(f"D:\桌面\pythoncode\爬虫案例\Selenium入门\极简壁纸\{count}.jpg",'wb') as file:await file.write(data)print(f"第{count}图片缓存成功")except:print(f"第{count}图片缓存失败")async def main():print("选择下载多少页的壁纸")a = int(input())web = webdriver.Chrome()web.get("https://bz.zzzmh.cn/index")time.sleep(3)task = []count = 1for k in range(a):img_List=(web.find_elements(by="xpath",value='//div[@class="img-box"]'))next = web.find_element(by="xpath",value='//div[@class="vue_pagination_group"]/div[@class="vue_pagination_next vue_pagination_item"]')for i in img_List:src = i.find_element(by="xpath",value='./span[@class="down-span"]/a')src= src.get_attribute('href')print(src)t = asyncio.create_task(download(src,count))task.append(t)count+=1if k!=a-1:next.click()time.sleep(3)    return await asyncio.wait(task)
if __name__=="__main__":asyncio.run(main())

效果:

http://www.lryc.cn/news/246008.html

相关文章:

  • docker操作手册
  • css Vue尺子样式
  • C++ 数据结构之-最小栈(MinStack)
  • 【日常总结】优雅升级Swagger 2 升至 3.0, 全局设置 content-type application/json
  • 2023.11.27如何使用内网穿透工具实现Java远程连接操作本地Elasticsearch搜索引擎
  • HNU 练习八 结构体编程题1. 评委打分
  • 数据结构:字典树(前缀树,Trie树),压缩字典树(Radix)
  • 前端学习系列之html
  • Star History 十月开源精选 |AI for Postgres
  • 网络运维与网络安全 学习笔记2023.11.23
  • 红黑树(万字图文详解)
  • Kotlin学习——kt入门合集博客 kt里的委派模式Delegation kt里的特性
  • 数据挖掘 朴素贝叶斯
  • UI自动化测试工具有哪些优势?
  • 【论文阅读笔记】InstructDiffusion: A Generalist Modeling Interface for Vision Tasks
  • 笔记62:注意力汇聚 --- Nadaraya_Watson 核回归
  • 给定一个n×n的方阵,本题要求计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。
  • Go语言的学习笔记3——Go语言项目布局
  • 70-76-堆、贪心算法
  • Qt Network
  • Win10电脑用U盘重装系统的步骤
  • 安防视频监控/磁盘阵列/集中云存储平台EasyCVR设备录像保活不生效原因是什么?该如何解决?
  • 【JDK21】详解虚拟线程
  • UE5 - 虚幻引擎各模块流程图
  • vue3实现element table缓存滚动条
  • flutter布局详解及代码示例(下)
  • SQL Server:流程控制语言详解
  • 2、用命令行编译Qt程序生成可执行文件exe
  • 【追求卓越08】算法--排序算法
  • Linux fork笔试练习题