使用python3批量下载网站图片

0x01 Code

import shutil
import requests
import os
from bs4 import BeautifulSoup

url='https://www.woyaogexing.com/touxiang/fengjing/'

def download_tupian(image_url,image_localpath):
	response = requests.get(image_url,stream = True)	#下载文件需要设置stream为true
	if response.status_code == 200:
		with open(image_localpath,'wb') as f:
			response.raw.deconde_content = True
			shutil.copyfileobj(response.raw,f)	#shutil和response配合下载是我们通用的一个下载方式。

def pa(url):
	response = requests.get(url)
	#print (response.text)
	soup = BeautifulSoup(response.text,'lxml')
	#print (soup.prettify())	#如果网页中格式混乱,可以使用此方法输出为标准的html格式
	for divv in soup.find_all('div',class_='pMain'):
		#print (divv)
		for tupian in divv.find_all('img'):	#先找到想要匹配的块,再具体匹配符合条件的内容。
			imgurl = tupian.get('src')	#得到img标签中src属性的值,即图片url。
			#print (tupian)
			#print ('http:'+imgurl)
			newimgurl='http:'+imgurl	#在这里获取到的图片url是//pic.com/xxx.jpg的形式,无法直接下载,需要转换一下		
			dir = os.path.abspath('./images')	#得到当前路径
			filename = os.path.basename(newimgurl)	#得到图片名称
			imgpath = os.path.join(dir,filename)	#设置好下载的路径和图片的名称
			print ('下载ing: %s' % imgurl)
			download_tupian(newimgurl,imgpath)	#调用下载图片的方法
	

pa(url)

0x02 效果

在这里插入图片描述

在这里插入图片描述

发布了48 篇原创文章 · 获赞 22 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/lhh134/article/details/88794944