Python批量爬取堆糖壁纸

Python批量爬取堆糖壁纸

枫
2023-04-01 / 0 评论 / 84 阅读 / 耗时 201ms / 正在检测是否收录...

介绍

  捣鼓一上午,无聊写的,可以批量爬取堆糖壁纸图片,可自定义设置爬取页数。
  需要导入两个模块,懂python都应该怎么导入吧,我就不详细说了,图片保存路径自定义是D:/image/需要更改自己设置昂
站点:https://www.duitang.com/

效果

所需库

import jsonpath  #需要自己导入
import requests  #需要自己导入
import os        #自带库,无需导入
import json      #自带库,无需导入

知识点

总结收获,所学习模块用法 表情

1. 模拟浏览器请求资源
data = requests.get(url).text
2. 解析网页
因为是json文件,所以直接用jsonpath工具提取数据
html = json.loads(data)
photo = jsonpath.jsonpath(html,"$..path") 
print(photo)
3. 保存

代码

import json
import jsonpath
import requests
import os

title =1

msg =input('输入你要爬取的内容>>>:')

if not os.path.exists(f'D:/image/'):
    os.mkdir((f'D:/image/'))
#判断是否有这个文件夹,没有则新建文件夹

for page in range(0,30):    #这里自定义爬取页数


    url =f'https://www.duitang.com/napi/blog/list/by_search/?kw={msg}&start={page *24}'
    #爬取urk

    headers={
        'cookie': 'js=1; _fromcat=category; Hm_lvt_d8276dcc8bdfef6bb9d5bc9e3bcfcaf4=1679106257; sessionid=de7b2587-5983-4322-86f0-ad422aae708d; _ga=GA1.2.1889637025.1680273718; _gid=GA1.2.1427858810.1680273718; Qs_lvt_476474=1679106283%2C1680273734; Qs_pv_476474=948869643746533400%2C3265479778410258000%2C1108286496701228700%2C2054902633385626000%2C2214954563826732300; Hm_lpvt_d8276dcc8bdfef6bb9d5bc9e3bcfcaf4=1680276955',
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.54'

    }
    print(f'\n================开始爬取第{[page]}页{[msg]}图片================\n',)
    res =requests.get(url=url,headers=headers).text
    html =json.loads(res)   #json.loads解析
    img =jsonpath.jsonpath(html,"$..path") #jsonpath取值,比键值对取值更简洁
    name =jsonpath.jsonpath(html,"$..msg")[0] #取图片昵称



    for i in img:
        print(name+str(title),i)  #图片名称跟序号拼接
        data =requests.get(url=i,headers=headers)
        with open(f'D:/image/{name+str(title)}'+'.png',mode='wb')as f:
          # 图片保存路径,需要自己更改
            f.write(data.content)
            title+=1
print('\n\n共爬取:',title-1,'张')
print('\n==============下载完毕!!!==============')
5

海报

正在生成.....

评论 (0)

取消