python(2)-根据关键字进行图片爬虫
程序员文章站
2022-05-18 19:39:09
...
上一篇爬虫的实现,是通过输入网页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)