图片采集器

1. 寻找图片源

来源:百度图片
在这里插入图片描述

2. url 格式

百度图片默认以ajax加载,可以直接获取,有兴趣的可以自己去试
这里提供一个可以翻页的链接
http://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=%E5%93%88%E5%A3%AB%E5%A5%87&pn=20

3. spider


import re
import os
import requests
import hashlib


class Spider(object):

    def __init__(self):
        
        self.headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36',
            'Referer': 'http://image.baidu.com/search/flip?tn=baiduimage&word=%E7%BE%8E%E5%A5%B3%20%E5%9B%BE&pn=0',
            'Upgrade-Insecure-Requests': '1'
        }


    def get_data(self, url, name):
        print(url)

        # 文件夹名称
        folder = os.getcwd() + '/' + name

        # 判断文件夹是否存在, 没有就创建
        if not os.path.exists(folder):
            os.mkdir(folder)

        response = requests.get(url, headers=self.headers).text
        url_list = re.findall(r'"thumbURL":"(.*?)"', response)

        for url in url_list:
            try:
                response2 = requests.get(url, headers=self.headers).content
            except Exception as e:
                pass
            else:
                # 通过图片地址获取hash值,作为图片名字
                hash_name = hashlib.md5(url.encode()).hexdigest()

                # 持久化名字
                save_name = folder + '/' + hash_name + '.jpg'
                print(save_name)

                # 图片持久化
                with open(save_name, 'wb') as f:
                    f.write(response2)

    def run(self):
        """
        运行逻辑
        :return:
        """
        while True:
            name = input('需要采集的图片类型>>>: ')
            page = int(input('需要多少页>>>: '))

            for i in range(page):
                print('正在爬取第{}页============================'.format(i))
                url = 'http://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word={}&pn={}'.format(name, i*20)
                self.get_data(url, name)


if __name__ == '__main__':
    s = Spider()
    s.run()

4. logo

找一个logo然后生成ico图标,作为采集器衣服

生成ico图标

5. 打包成exe

pyinstaller -F -i spider.ico spider.py
在这里插入图片描述

6. 运行exe文件

在这里插入图片描述

发布了288 篇原创文章 · 获赞 50 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/gklcsdn/article/details/104004935