我比较菜,这点代码写了一下午,希望对你有帮助。
#python批量下载图片# from bs4 import BeautifulSoup import requests import os import time url="https://pic.netbian.com/" #输入首页,输出首页HTML def Html(url,beas='utf-8'): resp=requests.get(url) if resp.status_code==200: pass else: print("爬取完毕") return False html=resp.content.decode(beas) return html #输入选择类型后的ul,输出href列表 def hreflist(lis): list=[] for li in lis: href=li.find("a").get("href") list.append(href) return list def lislist(html): Bea=BeautifulSoup(html,'html.parser') ul=Bea.find("ul",class_="clearfix") lis=ul.find_all('li') return lis #输入首页网址和图片所在网址,输出图片数据 def imgcontn(shou,ImgHtml): Bea=BeautifulSoup(Html(shou+ImgHtml,'gbk'),'html.parser') src=Bea.find("div",class_="photo-pic").find('a').find('img').get('src') contn=requests.get(shou+src).content return contn if __name__=="__main__": #选择要下载图片的类型 nums=1 type=input("请选择要下载的类型:['我都要','风景','美女','游戏','动漫','影视','汽车','动物','人物','美食','宗教','背景']\n输入:") types={'我都要':'/','风景':'/4kfengjing/','美女':'/4kmeinv/','游戏':'/4kyouxi/','动漫':'/4kdongman/','影视':'/4kyingshi/','汽车':'/4kqiche/','动物':'/4kdongwu/','人物':'/4krenwu/','美食':'/4kmeishi/','宗教':'/4kzongjiao/','背景':'/4kbeijing/'} nums=input("\n请选择要下载的页数(一页20张):") typeurl=types.get(type) url="https://pic.netbian.com" if os.path.isdir('./images'): print('已经有image目录了\n') else: os.mkdir('./images') i=0 dir=[] endurl='' for num in range(1,int(nums)+1): if num==1: pass else: endurl='index_{0}.html'.format(num) if Html(url+typeurl+endurl,'gbk'): html=Html(url+typeurl+endurl,'gbk')#选过类型后的html lis=lislist(html)#html中找到li列表 hrefs=hreflist(lis)#li列表中找href列表 for href in hrefs:#遍历href列表 contn=imgcontn(url,href) with open('./images/'+href.split('/')[-1].split('.html')[0]+'.jpg','wb') as f: f.write(contn) i=i+1 print('已经完成',i,'个') print('第',num,'页下载完毕') else: pass print('全部下载完毕\n')