python(2)-根據關鍵字進行圖片爬蟲
阿新 • • 發佈:2019-02-11
上一篇爬蟲的實現,是通過輸入網頁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)