先搜一个图片,然后打开控制台,这个图片是动态加载的,没有页数的,所以一直滚动右边的滚动条,就会加载出新的内容,然后双击左下角生成的路径
双击后,出现下面的数据,红框框住的东西就是具体图片的路径
然后看上面生成的路径,一直滚动滚动条生成新的图片后,pn值就会变化.
pn的值是当前加载了多少图片,rn是每次加载,加载30张图片,可以自己手动把pn改为1,然后查看一下里面生成的图片就是第一张图片.
# -*- coding: UTF-8 -*-
import json
import urllib.request as urllib2
import requests
from time import strftime, localtime,sleep
import os
def getPages(keyword,num):
keyword = urllib2.quote(keyword)
url = 'https://image.baidu.com/search/acjson?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=&cg=wallpaper&pn='+num+'&rn=5s&gsm=1e&1534226537567='
headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'}
try:
request = urllib2.Request(url, headers=headers)
source_code = urllib2.urlopen(request,timeout=20).read()
s_json=json.loads(source_code)
return s_json['data']
except urllib2.error.URLError:
if hasattr(e,"code"):
print (e.code)
if hasattr(e,"reason"):
print (e.reason)
def getImg(dataList, uipath):
if not os.path.exists(uipath): # 新建文件夹
os.mkdir(uipath)
print(uipath)
x = 0
for x in range(0,len(dataList)):
try:
path = str(dataList[x]['thumbURL'])
except KeyError as e:
print('没有找到路径')
continue
if path!=None:
print('正在下载:%s' %path)
try:
ir = requests.get(path)
#生成当前时间
nowTime = str(strftime("%Y-%m-%d %H-%M-%S", localtime()))
sleep(1)
print('%s.jpg'%nowTime)
open(uipath + '%s.jpg'%nowTime, 'wb').write(ir.content)
x += 1
except Exception as e:
print ('路径显示有问题,无法加载图片')
continue
else:
print('无路径,无法加载图片')
if __name__ == '__main__':
num = '0'
while True:
#第一个参数是要搜索图片的关键字,第二个参数是加载几个图片,可以自己设置
dataList = getPages('图片',num)
getImg(dataList, 'D:/Documents/Desktop/pictures/')
num2 = int(num)
num2 += 5
num = str(num2)