python(2)-根据关键字进行图片爬虫

上一篇爬虫的实现,是通过输入网页url爬取该网页上的所有图片,这一篇博客,是根据输入关键字进行图片的爬虫,可以自己设置下载的页数和每页的图片数。

参考自:

好吧,我找不到原博客了,抱歉。

先直接贴源代码,然后比较关键的地方我写在注释里了:

import requests
import os

#得到的结果根据urls返回
def getManyPages(keyword,pages):
    params=[]
    for i in range(30,30*pages+30,30):
        params.append({
                      'tn': 'resultjson_com',
                      'ipn': 'rj',
                      'ct': 201326592,
                      'is': '',
                      'fp': 'result',
                      'queryWord': keyword,
                      'cl': 2,
                      'lm': -1,
                      'ie': 'utf-8',
                      'oe': 'utf-8',
                      'adpicid': '',
                      'st': -1,
                      'z': '',
                      'ic': 0,
                      'word': keyword,
                      's': '',
                      'se': '',
                      'tab': '',
                      'width': '',
                      'height': '',
                      'face': 0,
                      'istype': 2,
                      'qc': '',
                      'nc': 1,
                      'fr': '',
                      'pn': i,
                      'rn': 30,
                      'gsm': '1e',
                      '1488942260214': ''
                  })
     #所有图片来源于下面的url,当然你也可以自己设置
    url = 'https://image.baidu.com/search/acjson'
    urls = []
    for i in params:
        urls.append(requests.get(url,params=i).json().get('data'))
    return urls


def getImg(dataList, localPath):

    if not os.path.exists(localPath):  # 新建文件夹
        os.mkdir(localPath)

    x = 0
    for list in dataList:
        for i in list:
            if i.get('thumbURL') != None:
                print('正在下载:%s' % i.get('thumbURL'))
                ir = requests.get(i.get('thumbURL'))
                open(localPath + '%d.jpg' % x, 'wb').write(ir.content)
                x += 1
            else:
                print('图片链接不存在')


#程序入口
if __name__ == '__main__':
    #关键字数组,根据数组里的关键字爬图片
    keyWord = ['C罗', 'messi', '桑切斯', '周杰伦','布达拉宫','西藏','长城','布拉格','重庆大学']
    for i in range(0,len(keyWord)):
        dataList = getManyPages(keyWord[i], 1)# 参数1:关键字,参数2:要下载的页数
        #本地的存储路径
        localPath = '/Users/cheng/PycharmProjects/testPhotos/' + keyWord[i] + '/'
        #下载图片并存储在本地
        getImg(dataList, localPath)

猜你喜欢

转载自blog.csdn.net/myGFZ/article/details/78949267
今日推荐