爬取渐变风格插画


import os, requests


class IMGspider(object):
    # 在当前工作目录下创建图片文件夹
    os_path = os.getcwd() + '/graph/'
    if not os.path.exists(os_path):
        os.mkdir(os_path)

    def __init__(self):
        '''
        准备数据
        '''
        self.user_page_input = input('请输入你想爬取多少页<示例:5>:')
        self.start_url = 'https://image.baidu.com/search/albumsdata'
        self.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 Edg/93.0.961.52'}

    def parse_start_url(self):
        '''
        发送请求,获取响应
        :return:
        '''
        # 模拟翻页(异步请求)
        for page in range(1, int(self.user_page_input) + 1):
            # 构造请求参数
            params = {'pn': f'{30 * page}',
                      'rn': '30',
                      'tn': 'albumsdetail',
                      'word': '渐变风格插画',
                      'album_tab': '设计素材',
                      'album_id': '409',
                      'ic': '0',
                      'curPageNum': f'{page}'}
            # 发送请求,获取响应
            response = requests.get(self.start_url, headers=self.headers, params=params)

            self.parse_response_data(response)

    def parse_response_data(self, response):
        '''
        解析响应,数据提取
        :return:
        '''
        # 解析响应
        json_dict_data = response.json()
        data_list = json_dict_data['albumdata']['linkData']
        for dic_data in data_list:
            # 提取图片地址
            img_url = dic_data['thumbnailUrl']
            # 提取保存图片名称
            img_name = dic_data['contSign']

            # 对图片的地址发送请求,获取图片的字节数据
            data = requests.get(img_url).content

            # 图片保存
            self.parse_save_data(img_name, data)

    def parse_save_data(self, name, data):
        '''
        保存数据
        :return:
        '''
        with open(self.os_path + f'{name}' + '.jpg', 'wb') as f:
            f.write(data)
        print('下载完成')


if __name__ == '__main__':
    i = IMGspider()
    i.parse_start_url()

上一篇:element 时间过滤


下一篇:编译原理学习笔记(语法分析)