欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

图片采集器

程序员文章站 2022-03-30 23:05:26
...

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文件

图片采集器

相关标签: spider exe