python爬虫堆糖图片 异步加载

import os
import jsonpath
import requests

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9'
}


def get_url(kw, page_num):
    # 通过抓包获得异步加载的url
    url_list = []
    for i in range(1, page_num + 1):
        # print(i)
        url = 'https://www.duitang.com/napi/blogv2/list/by_search/?kw={}&after_id={}'.format(kw, 24 * i)
        url_list.append(url)
    return url_list
    # return resp.json()


if __name__ == '__main__':
    kw = input("输入搜索内容:")
    page_num = int(input("需要加载多少页:"))

    base_path = os.path.dirname(__file__)
    path = os.path.join(base_path, '{}'.format(kw))
    if not os.path.exists(path):
        os.makedirs(path)

    # 内容网址
    url_s = get_url(kw, page_num)

    for i in range(len(url_s)):
        resp = requests.get(url_s[i], headers=headers)
        s = resp.json()
        # 通过jsonpath获取到的图片链接地址
        src = jsonpath.jsonpath(s, '$.data.object_list[*].photo.path')

        for j in range(len(src)):
            img_src = requests.get(url=src[j]).content
            pic_path = path + './{}'.format(kw) + f'{i}_' + f'{j}' + '.jpg'

            with open(pic_path, 'wb') as f:
                f.write(img_src)
            print("<<====正在保存第{}张,剩{}张====>>".format(j + 1, len(src) - j - 1))
        print("<<====当前页面已保存====>>")

1.输入需要搜索的关键字

2.输入页数(1页24张图)

3.保存图片到关键字文件夹中

4.图片以关键字命名

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值