python根据关键词下载图片_python批量下载PPT图片,看完本代码你也会批量下载图片...

1、写代码背景:

今天闲来无事,想弄点PPT图片放到电脑,方便以后使用,故去百度查找一些PPT图片网站,发现PPT图片网址http://www.pptbz.com/pptshucai/pptbjtp/index.html的图片质量不错,故尝试通过python的爬虫功能爬取图片。

2、对被爬取网址进行测试查看:

在浏览器输入图片网址http://www.pptbz.com/pptshucai/pptbjtp/index.html,依次进行以下操作:

①按住f12

②按住F5

③点击Network里的最左边的↖箭头

④点击相应的图片

⑤查看图片所在的标签信息

如下图所示:

2246aa0fe979447099acb45b95efe2e0

http://www.pptbz.com/pptshucai/pptbjtp/index.htmlw

得出结论:

①所有的图片标签都在img标签里,所有的图片标签的网址都是img标签的src属性值,故需要对img标签的src属性值进行解析。

②首页的网址没有页码1,其他页的网址有包含页码,总共5页有图片。

3、开始在pycharm里编写代码:

代码如下:

#1、导入相应的模块import requestsimport randomfrom bs4 import BeautifulSoupimport os#2、定义对网站进行get请求的函数def downpic(page): agent1 = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36"} # 设定请求头的值agent1 agent2 = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36"} # 设定请求头的值agent2 agent3 = {"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36"} # 设定请求头的值agent3 list1 = [agent1, agent2, agent3] # 设置3个请求头组成的列表,并赋值给列表list1 agent = random.choice(list1) # 请求头的值agent从列表list1里随机选择一个 try: if page==1: #假如页码为1时 url = "http://www.pptbz.com/pptshucai/pptbjtp/index.html" #则设置相应的url网址 elif page > 1: #假如页码大于1时 url = "http://www.pptbz.com/pptshucai/pptbjtp/index_" + str(page) + ".html" #则设置相应的url网址加上页码 response=requests.get(url,headers=agent) #伪装浏览器对网站进行get请求,并将请求结果赋值给response response.encoding=response.apparent_encoding #根据内容解析出网页的编码格式并赋值给response.encoding html=response.text #将网页的源代码赋值给html soup=BeautifulSoup(html,"html.parser") #对html源代码进行html.parser解析,并赋值给soup images=soup.findAll("img") #查找soup里的所有的img图片标签 list1=[] #设置空列表list1,用来存放url网址 for image in images: #遍历所有的图片标签 if "http"is image.attrs["src"]: #假如图片标签的src属性值里包含http list1.append(image.attrs["src"]) #则将图片的src属性值添加到list1列表 else: #否则 list1.append("http://www.pptbz.com"+image.attrs["src"]) #在图片标签的src属性值前加上网页的主页地址,并添加到列表list1 path="F://PPT图片//" #设置本机保存图片的文件夹位置 if not os.path.exists(path): #假如不存这个路径时 os.mkdir(path) #新建这个路径 i=0 #定义i初始值为0 for imgurl in list1: #遍历列表list里的所有图片地址 response1=requests.get(url=imgurl,headers=agent) #伪装浏览器对网站进行get请求,并将请求结果赋值给response1 response1.encoding=response1.apparent_encoding #根据内容解析出网页的编码格式并赋值给response1.encoding content1=response1.content #将网页的二进制源代码赋值给content1 abspath=path+str(page)+str(i)+".jpg" #设置保存图片的绝对路径 i=i+1 #每遍历1次,i自增1 with open(abspath,"wb") as f: #打开文件abspath路径,设置为f,并进行写入操作 f.write(content1) #在f里面写入网页源代码的二进制格式内容 f.close() #关闭文件 print("图片网址为:{}的第{}页图片下载完成,下载到本机的路径是:{}".format(url,page,abspath)) #打印图片网址为:的第多少页图片下载完成,下载到本机的路径是: except: #否则当接收到错误反馈时 print("爬取失败") #打印爬取失败 finally: #最后 print("ppt图片网站的第"+str(page)+"页爬取结束") #打印ppt图片网站的第多少页爬取结束#3、对下载图片函数进行调用if __name__ == '__main__': for page in range(1,6): #核实发现共计5页图片,故从第一页开始爬取一直爬取到第5页,所以需要对页码page进行从1-5的遍历 downpic(page) #调用下载图片的函数,参数是页码

pycharm的代码运行结果如下:

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index.html的第1页图片下载完成,下载到本机的路径是:F://PPT图片//10.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index.html的第1页图片下载完成,下载到本机的路径是:F://PPT图片//11.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index.html的第1页图片下载完成,下载到本机的路径是:F://PPT图片//12.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index.html的第1页图片下载完成,下载到本机的路径是:F://PPT图片//13.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index.html的第1页图片下载完成,下载到本机的路径是:F://PPT图片//14.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index.html的第1页图片下载完成,下载到本机的路径是:F://PPT图片//15.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index.html的第1页图片下载完成,下载到本机的路径是:F://PPT图片//16.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index.html的第1页图片下载完成,下载到本机的路径是:F://PPT图片//17.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index.html的第1页图片下载完成,下载到本机的路径是:F://PPT图片//18.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index.html的第1页图片下载完成,下载到本机的路径是:F://PPT图片//19.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index.html的第1页图片下载完成,下载到本机的路径是:F://PPT图片//110.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index.html的第1页图片下载完成,下载到本机的路径是:F://PPT图片//111.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index.html的第1页图片下载完成,下载到本机的路径是:F://PPT图片//112.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index.html的第1页图片下载完成,下载到本机的路径是:F://PPT图片//113.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index.html的第1页图片下载完成,下载到本机的路径是:F://PPT图片//114.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index.html的第1页图片下载完成,下载到本机的路径是:F://PPT图片//115.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index.html的第1页图片下载完成,下载到本机的路径是:F://PPT图片//116.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index.html的第1页图片下载完成,下载到本机的路径是:F://PPT图片//117.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index.html的第1页图片下载完成,下载到本机的路径是:F://PPT图片//118.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index.html的第1页图片下载完成,下载到本机的路径是:F://PPT图片//119.jpg

ppt图片网站的第1页爬取结束

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_2.html的第2页图片下载完成,下载到本机的路径是:F://PPT图片//20.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_2.html的第2页图片下载完成,下载到本机的路径是:F://PPT图片//21.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_2.html的第2页图片下载完成,下载到本机的路径是:F://PPT图片//22.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_2.html的第2页图片下载完成,下载到本机的路径是:F://PPT图片//23.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_2.html的第2页图片下载完成,下载到本机的路径是:F://PPT图片//24.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_2.html的第2页图片下载完成,下载到本机的路径是:F://PPT图片//25.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_2.html的第2页图片下载完成,下载到本机的路径是:F://PPT图片//26.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_2.html的第2页图片下载完成,下载到本机的路径是:F://PPT图片//27.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_2.html的第2页图片下载完成,下载到本机的路径是:F://PPT图片//28.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_2.html的第2页图片下载完成,下载到本机的路径是:F://PPT图片//29.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_2.html的第2页图片下载完成,下载到本机的路径是:F://PPT图片//210.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_2.html的第2页图片下载完成,下载到本机的路径是:F://PPT图片//211.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_2.html的第2页图片下载完成,下载到本机的路径是:F://PPT图片//212.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_2.html的第2页图片下载完成,下载到本机的路径是:F://PPT图片//213.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_2.html的第2页图片下载完成,下载到本机的路径是:F://PPT图片//214.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_2.html的第2页图片下载完成,下载到本机的路径是:F://PPT图片//215.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_2.html的第2页图片下载完成,下载到本机的路径是:F://PPT图片//216.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_2.html的第2页图片下载完成,下载到本机的路径是:F://PPT图片//217.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_2.html的第2页图片下载完成,下载到本机的路径是:F://PPT图片//218.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_2.html的第2页图片下载完成,下载到本机的路径是:F://PPT图片//219.jpg

ppt图片网站的第2页爬取结束

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_3.html的第3页图片下载完成,下载到本机的路径是:F://PPT图片//30.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_3.html的第3页图片下载完成,下载到本机的路径是:F://PPT图片//31.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_3.html的第3页图片下载完成,下载到本机的路径是:F://PPT图片//32.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_3.html的第3页图片下载完成,下载到本机的路径是:F://PPT图片//33.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_3.html的第3页图片下载完成,下载到本机的路径是:F://PPT图片//34.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_3.html的第3页图片下载完成,下载到本机的路径是:F://PPT图片//35.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_3.html的第3页图片下载完成,下载到本机的路径是:F://PPT图片//36.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_3.html的第3页图片下载完成,下载到本机的路径是:F://PPT图片//37.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_3.html的第3页图片下载完成,下载到本机的路径是:F://PPT图片//38.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_3.html的第3页图片下载完成,下载到本机的路径是:F://PPT图片//39.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_3.html的第3页图片下载完成,下载到本机的路径是:F://PPT图片//310.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_3.html的第3页图片下载完成,下载到本机的路径是:F://PPT图片//311.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_3.html的第3页图片下载完成,下载到本机的路径是:F://PPT图片//312.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_3.html的第3页图片下载完成,下载到本机的路径是:F://PPT图片//313.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_3.html的第3页图片下载完成,下载到本机的路径是:F://PPT图片//314.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_3.html的第3页图片下载完成,下载到本机的路径是:F://PPT图片//315.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_3.html的第3页图片下载完成,下载到本机的路径是:F://PPT图片//316.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_3.html的第3页图片下载完成,下载到本机的路径是:F://PPT图片//317.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_3.html的第3页图片下载完成,下载到本机的路径是:F://PPT图片//318.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_3.html的第3页图片下载完成,下载到本机的路径是:F://PPT图片//319.jpg

ppt图片网站的第3页爬取结束

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_4.html的第4页图片下载完成,下载到本机的路径是:F://PPT图片//40.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_4.html的第4页图片下载完成,下载到本机的路径是:F://PPT图片//41.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_4.html的第4页图片下载完成,下载到本机的路径是:F://PPT图片//42.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_4.html的第4页图片下载完成,下载到本机的路径是:F://PPT图片//43.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_4.html的第4页图片下载完成,下载到本机的路径是:F://PPT图片//44.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_4.html的第4页图片下载完成,下载到本机的路径是:F://PPT图片//45.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_4.html的第4页图片下载完成,下载到本机的路径是:F://PPT图片//46.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_4.html的第4页图片下载完成,下载到本机的路径是:F://PPT图片//47.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_4.html的第4页图片下载完成,下载到本机的路径是:F://PPT图片//48.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_4.html的第4页图片下载完成,下载到本机的路径是:F://PPT图片//49.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_4.html的第4页图片下载完成,下载到本机的路径是:F://PPT图片//410.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_4.html的第4页图片下载完成,下载到本机的路径是:F://PPT图片//411.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_4.html的第4页图片下载完成,下载到本机的路径是:F://PPT图片//412.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_4.html的第4页图片下载完成,下载到本机的路径是:F://PPT图片//413.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_4.html的第4页图片下载完成,下载到本机的路径是:F://PPT图片//414.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_4.html的第4页图片下载完成,下载到本机的路径是:F://PPT图片//415.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_4.html的第4页图片下载完成,下载到本机的路径是:F://PPT图片//416.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_4.html的第4页图片下载完成,下载到本机的路径是:F://PPT图片//417.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_4.html的第4页图片下载完成,下载到本机的路径是:F://PPT图片//418.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_4.html的第4页图片下载完成,下载到本机的路径是:F://PPT图片//419.jpg

ppt图片网站的第4页爬取结束

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_5.html的第5页图片下载完成,下载到本机的路径是:F://PPT图片//50.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_5.html的第5页图片下载完成,下载到本机的路径是:F://PPT图片//51.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_5.html的第5页图片下载完成,下载到本机的路径是:F://PPT图片//52.jpg

图片网址为:http://www.pptbz.com/pptshucai/pptbjtp/index_5.html的第5页图片下载完成,下载到本机的路径是:F://PPT图片//53.jpg

ppt图片网站的第5页爬取结束

图片示例如下:

81b2a2fdfb9644e097dfd86d8450af87

pycharm编辑器里代码和代码运行结果

fd2bf13dbf6043ccb6964f002a6707f7

保存到本机的图片