爬虫进阶-python爬虫爬取百度图片
今天来和大家分享下,如何通过
一、开发环境
开发环境:python 3.9和sublime_text
二、第三方库
requests
os
(time)
三、步骤
步骤1:导入requests模块
步骤2:添加url
步骤3:查看百度图片时,浏览器用到Ajax请求,所以url是变化的
步骤4:get请求url,包括url、headers、请求数据。
步骤5:创建新文件夹接收响应
四、代码
只能一次爬取前30张,因为没改params['pn']。
如果想爬取更多的话就for循环,请求Ajax:
然后遍历urls列表,请求得到urls中每个值的json数据,最后得到所有图片的url,请求这些保存到文件夹。
import requests import os def getPages():#只能得到30张图片,想得到更多图片,需要变化params['pn']的值。 headers={'User-Agent':"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.77"} url='https://image.baidu.com/search/acjson' #追加请求内容(负载) params={ 'tn':'resultjson_com', 'logid':'5336511566462226640', 'ipn':'rj', 'ct':'201326592', 'is':' ', 'fp':'result', 'fr':' ', 'word':'荷兰猪', 'cg':'girl', 'queryWord':'荷兰猪', 'cl':'2', 'lm':'-1', 'ie':'utf-8', 'oe':'utf-8', 'adpicid':' ', 'st':' ', 'z':' ', 'ic':' ', 'hd':' ', 'latest':' ', 'copyright':' ', 's':' ', 'se':' ', 'tab':' ', 'width':' ', 'height':' ', 'face':' ', 'istype':' ', 'qc':' ', 'nc':'1', 'expermode':' ', 'nojc':' ', 'isAsync':' ', 'pn':'30', 'rn':'30', 'gsm':'1e', '1660570401395':' ' } res=requests.get(url=url,headers=headers,params=params) # print(res.json()) data=res.json()['data'] # print(data) #得到所有图片地址 urlPages=[] for i in data: if i.get('thumbURL') !=None: urlPages.append(i['thumbURL']) # print(urlPages) #检测文件夹是否存在 dir='./baidu' if not os.path.exists(dir): os.mkdir(dir)#创建目录方法 #向每个图片url发起请求 x=0 for o in urlPages: print('下载成功') res=requests.get(url=o,headers=headers) #下载到dir文件夹 open(f'{dir}/{x}.jpg','wb').write(res.content) x+=1 getPages()

爬虫进阶-python爬取百度图片
浙公网安备 33010602011771号