python爬取百度图片
工作需要 在网上搜索大量人脸表情数据!这个想法应运而生!先进行百度图片搜索 就在瀑布模式就好
利用检查元素 发现:
只有pn 和后面的改变 我也不晓得后面什么意思 不过只是把pn进行修改 就ok了 一页是30张
代码:
#*--coding:utf8--*
import requestsimport os
import sys
reload(sys)
sys.setdefaultencoding('utf8')
x = 0
def getManyPages(keyword,pages):
params=[]
for i in range(0,30*pages,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',
'1517211097506': ''
})
url = 'https://image.baidu.com/search/acjson'
urls = []
for i in params:
urls.append(requests.get(url,params=i).json().get('data'))
getImg(dataList,'e:/') # 参数2:指定保存的路径
urls.pop()#后来发现一旦页数太多 会出错 因此 就不把所有urls保存之后再下载了!!
return urls
def getImg(dataList, localPath):
global x
if not os.path.exists(localPath): # 新建文件夹
os.mkdir(localPath)
for list in dataList:
for i in list:
if i.get('thumbURL') != None:
print('正在下载:%s' % i.get(u'thumbURL'))
ir = requests.get(i.get(u'thumbURL'))
open(localPath + '%d.jpg' % x, 'wb').write(ir.content)
x += 1
else:
print('图片链接不存在')
if __name__ == '__main__':
strs=raw_input('请输入要查找的关键字:')
pages=input('请输入下载的总页数:')
dataList = getManyPages(strs,pages)