python爬取图片(百度、搜狗、必应)

最近抽空学习了python爬虫,为了巩固知识,就顺手写了一个小程序,可以爬取百度、搜狗、必应这三大网站的图片。

程序放在github上,地址为:https://github.com/taojianglong/python-crawler

多线程爬取图片github地址为:https://github.com/taojianglong/multi_thread_crawler

下载程序后,解压crawler_spider.zip,直接运行文件夹中的crawler_img.py文件。然后根据自己需要下载图片。

该程序只是为了方便以后回顾,以及为需要此文件的人提供一点帮助,如有不足之处,请指正。

python爬取图片(百度、搜狗、必应)_第1张图片

部分代码如下:

import os
import requests
from baidu_img import baidu_pic_url
from sougou_img import sougou_pic_url
from biying_img import biying_pic_url

class Crawler():
    def __init__(self, num, keyword, engine):
        self.num = num
        self.keyword = keyword
        self.engine = engine

    def down_img(self):
        if self.engine == 'baidu':
            pic_url = baidu_pic_url(self.num, self.keyword)
        elif self.engine == 'sougou':
            pic_url = sougou_pic_url(self.num, self.keyword)
        elif self.engine == 'biying':
            pic_url = biying_pic_url(self.num, self.keyword)
        else:
            print('错误的搜索引擎,请重新运行,输入:baidu、sougou、biying')

        if os.path.exists('D:/图片/' + self.engine + '/' + self.keyword):
            pass
        else:
            os.makedirs('D:/图片/' + self.engine + '/' + self.keyword)

        path = 'D:/图片/' + self.engine + '/'
        for index, i in enumerate(pic_url):
            try:
                filename = path + self.keyword + '/' + str(index) + '.jpg'
                print(filename)
                with open(filename, 'wb+') as f:
                    f.write(requests.get(i).content)
            except:
                continue

if __name__ == '__main__':
    keyword = str(input('请搜索关键词:(如:美女)'))
    num = int(input('请输入爬取图片数目:'))
    engine = str(input('请输入:baidu, sougou, biying其中之一'))
    crawler = Crawler(num, keyword, engine)
    crawler.down_img()

详细代码请移步github,下载完整代码。

你可能感兴趣的:(爬虫)