Python | P站壁纸爬取

网友投稿 712 2022-11-12

Python | P站壁纸爬取

Python | P站壁纸爬取

你懂的?坏笑(*^▽^*)

今天我们要爬取的是动漫壁纸图片,来看今天的主角:

在浏览的时候,当滑到底部时,壁纸会刷新加载,所以我们可以知道,壁纸是动态加载的。

打开开发者模式,观察HTML的动态变化。

图片地址是通过jsON数据传输过来的,所以,我们不就知道了每张壁纸对应的url了吗O(∩_∩)O

找到对应数据接口,开始代码的干活!

通过输入指定页数,遍历循环:

import requestsimport jsonpathimport jsonimport ospage = input("请输入需要-的页数:")if not os.path.exists('img'): os.mkdir('img')for i in range(int(page)): num = 1 url = f'+ 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('+ j, headers=headers).content) num += 1

三十行代码不到,就可以搞定啦

代码运行:

结果:

额,突然发现,第一页和第二页是一样的, ̄□ ̄||

不慌,我们可以选择过滤掉第一页

把代码​​for i in range(int(page))​​

改成​​for i in range(1,int(page)+1)​​

再把后面三个地方的 ​​i+1​​​ 改成 ​​i​​ 即可(〃'▽'〃)

最后,附上几张超可爱的壁纸

箴言:因为这些东西是非常简单的。不要抱怨自己学不会,那是因为你没有足够用心。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:JS根据数组对象属性删除对应对象
下一篇:Python | 一键生成九宫格图片
相关文章

 发表评论

暂时没有评论,来抢沙发吧~