python | P站壁纸爬取
2021/10/15 1:14:40
本文主要是介绍python | P站壁纸爬取,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
今天我们要爬取的是动漫壁纸图片,来看今天的主角:
在浏览的时候,当滑到底部时,壁纸会刷新加载,所以我们可以知道,壁纸是动态加载的。
打开开发者模式,观察HTML的动态变化。
点击NetWork,XHR,我们就可以发现,
图片地址是通过JSON数据传输过来的,所以,我们不就知道了每张壁纸对应的url了吗O(∩_∩)O
找到对应数据接口,开始代码的干活!
通过输入指定页数,遍历循环:
import requests import jsonpath import json import os page = input("请输入需要下载的页数:") if not os.path.exists('img'): os.mkdir('img') for i in range(int(page)): num = 1 url = f'https://rt.huashi6.com/front/index/load_pc_data?_ts_=1634131862878&cursor=' + str(i) + '-1634130800452' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:92.0) Gecko/20100101 Firefox/92.0' } path = f'img\\第{i+1}页' if not os.path.exists(path): os.mkdir(path) else: print(path + '已存在') continue html = requests.get(url, headers=headers).content.decode("utf-8") data = json.loads(html) img = jsonpath.jsonpath(data, '$..path') print(f"开始下载第{i+1}页...") for j in img: with open(path+ '\\' + str(num) + os.path.splitext(j)[1], 'wb') as f: print(f"第{i+1}页 正在下载第{num}张...") f.write(requests.get('https://img2.huashi6.com/' + j, headers=headers).content) num += 1
三十行代码不到,就可以搞定啦
代码运行:
结果:
额,突然发现,第一页和第二页是一样的, ̄□ ̄||
不慌,我们可以选择过滤掉第一页
把代码for i in range(int(page))
改成for i in range(1,int(page)+1)
再把后面三个地方的 i+1
改成 i
即可(〃'▽'〃)
注:如果有对Json和JsonPath模块不懂的,可以点击下面链接查看:
Python | JSON 数据解析(Json & JsonPath)
这篇关于python | P站壁纸爬取的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门