1. 程式人生 > >python(2)-根據關鍵字進行圖片爬蟲

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)