img绝对路径图片显示_使用python爬虫去风景图片网站批量下载图片

使用python爬虫(requests,BeautifulSoup)去风景图片网站批量下载图片

1、写代码背景:

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

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

在浏览器输入图片网址http://www.16sucai.com/tupian/gqfj/2.html,依次进行以下操作:

①按住f12

②按住F5

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

④点击相应的图片

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

如下图所示:

251ece54929e98e1b7f3e1fc61d7c0ab.png

测试查看网站的图片标签

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

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

代码如下:

#本代码演示了从http://www.16sucai.com/tupian/gqfj/2.html网站批量下载图片的案例#1、导入相应的模块import requests #导入爬虫网站请求的第三方库from bs4 import BeautifulSoup #导入解析库import random #导入随机库#2、对网站进行get请求def downpic(): url="http://www.16sucai.com/tupian/gqfj/2.html" #设置请求网站为风景图片的第2页 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: 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图片标签 list2=[] #设置空列表list2 for image in images: #遍历图片标签 if "http" in image.attrs["src"]: #假如图片标签的src属性值,即图片标签的网址包含http, list2.append(image.attrs["src"]) #则将图片标签的src属性的值添加到列表list2 path="F://风景//" #设置本机保存图片的文件夹位置 i=0 #定义i初始值为0 for img in list2: #遍历列表list2里的所有的img,即图片地址 response1=requests.get(img,headers=agent) #对图片地址进行伪装get请求,并将请求结果赋值给response1 response1.encoding=response1.apparent_encoding #根据内容解析出网页的编码格式并赋值给response.encoding content1=response1.content #将网页源代码的二进制格式内容赋值给content1 abspath=path+str(i)+".jpg" #设置保存文件的绝对路径为本机的风景图片位置,后缀为从0开始的整数,格式为.jpg i=i+1 #每遍历一次,i自增1 with open(abspath,"wb") as f: #打开文件abspath路径,设置为f,并进行写入操作 f.write(content1) #在f里面写入网页源代码的二进制格式内容 f.close() #关闭文件 print(img + "下载成功,保存到本机的地址是:" + abspath) #打印网络上的图片地址下载成功,保存到本机的地址是:在F盘相应路径 except: #当接收到错误反馈时 print("爬取失败") #打印爬取失败的错误 finally: #最后 print(url+"网址爬取结束") #打印爬取网址爬取结束#3、对函数进行调用if __name__ == '__main__': downpic() #调用爬取网址下载图片的函数gethtml()

pycharm的代码运行结果如下:

http://file03.16sucai.com/2017/240/16sucai_P59202G153.JPG下载成功,保存到本机的地址是:F://风景//0.jpg

http://file03.16sucai.com/2017/240/16sucai_P59202G152.JPG下载成功,保存到本机的地址是:F://风景//1.jpg

http://file03.16sucai.com/2017/240/16sucai_P59202G151.JPG下载成功,保存到本机的地址是:F://风景//2.jpg

http://file03.16sucai.com/2017/240/16sucai_P59202G150.JPG下载成功,保存到本机的地址是:F://风景//3.jpg

http://file03.16sucai.com/2017/240/16sucai_P59202G055.JPG下载成功,保存到本机的地址是:F://风景//4.jpg

http://file03.16sucai.com/2017/240/16sucai_P59202G054.JPG下载成功,保存到本机的地址是:F://风景//5.jpg

http://file03.16sucai.com/2017/240/16sucai_P59202G053.JPG下载成功,保存到本机的地址是:F://风景//6.jpg

http://file03.16sucai.com/2017/240/16sucai_P59202G052.JPG下载成功,保存到本机的地址是:F://风景//7.jpg

http://file03.16sucai.com/2017/240/16sucai_P59202G051.JPG下载成功,保存到本机的地址是:F://风景//8.jpg

http://file06.16sucai.com/2017/1103/e02dd9dde06deb2b803d28f80c3cc02c.jpg下载成功,保存到本机的地址是:F://风景//9.jpg

http://file03.16sucai.com/2017/240/16sucai_P59202C111.JPG下载成功,保存到本机的地址是:F://风景//10.jpg

http://file03.16sucai.com/2017/240/16sucai_P59202C164.JPG下载成功,保存到本机的地址是:F://风景//11.jpg

http://file03.16sucai.com/2017/240/16sucai_P59202C163.JPG下载成功,保存到本机的地址是:F://风景//12.jpg

http://file03.16sucai.com/2017/240/16sucai_P59202C036.JPG下载成功,保存到本机的地址是:F://风景//13.jpg

http://file03.16sucai.com/2017/240/16sucai_P59202A301.JPG下载成功,保存到本机的地址是:F://风景//14.jpg

http://file03.16sucai.com/2017/240/16sucai_P59202A238.JPG下载成功,保存到本机的地址是:F://风景//15.jpg

http://file03.16sucai.com/2017/240/16sucai_P59202A278.JPG下载成功,保存到本机的地址是:F://风景//16.jpg

http://file03.16sucai.com/2017/240/16sucai_P59202A276.JPG下载成功,保存到本机的地址是:F://风景//17.jpg

http://file03.16sucai.com/2017/240/16sucai_P59202A275.JPG下载成功,保存到本机的地址是:F://风景//18.jpg

http://file03.16sucai.com/2017/240/16sucai_P59202A144.JPG下载成功,保存到本机的地址是:F://风景//19.jpg

http://file03.16sucai.com/2017/240/16sucai_P59202A028.JPG下载成功,保存到本机的地址是:F://风景//20.jpg

http://file03.16sucai.com/2017/240/16sucai_P59202A027.JPG下载成功,保存到本机的地址是:F://风景//21.jpg

http://file03.16sucai.com/2017/240/16sucai_P59202A026.JPG下载成功,保存到本机的地址是:F://风景//22.jpg

http://file03.16sucai.com/2017/240/16sucai_P59202A025.JPG下载成功,保存到本机的地址是:F://风景//23.jpg

http://www.16sucai.com/tupian/gqfj/2.html网址爬取结束

图片示例如下:

175de3dee9c31ae007687e86d24e6c37.png

代码图片

8cef7d4464abc80c247a3610c413814a.png

存入电脑的风景图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值