Python技术

知乎上有许多关于颜值、身材的话题,有些话题的回复数甚至高达几百上千,拥有成千上万的关注者与被浏览数。如果我们在摸鱼的时候欣赏这些话题将花费大量的时间,可以用 Python 制作一个下载知乎回答图片的小脚本,将图片下载到本地。

下载图片

下面代码将读取文件中的图片地址并下载。

defread_file(title): file_name=title+'.txt' pic_urls=[] #判断文件是否存在 ifnotos.path.exists(file_name): returnpic_urls withopen(file_name,'r')asf: forlineinf: url=line.replace("n","") ifurlnotinpic_urls: pic_urls.append(url) print("文件中共有{}个不重复的URL".format(len(pic_urls))) returnpic_urls defdownload_pic(pic_urls,title): #创建文件夹 ifnotos.path.exists(title): os.makedirs(title) error_pic_urls=[] success_pic_num=0 repeat_pic_num=0 index=1 forurlinpic_urls: file_name=os.sep.join((title,basename(urlsplit(url)[2]))) ifos.path.exists(file_name): print("图片{}已存在".format(file_name)) index+=1 repeat_pic_num+=1 continue try: urllib.request.urlretrieve(url,file_name) success_pic_num+=1 index+=1 print("下载{}完成!({}/{})".format(file_name,index,len(pic_urls))) except: print("下载{}失败!({}/{})".format(file_name,index,len(pic_urls))) error_pic_urls.append(url) index+=1 continue print("图片全部下载完毕!(成功:{}/重复:{}/失败:{})".format(success_pic_num,repeat_pic_num,len(error_pic_urls))) iflen(error_pic_urls)>0: print('下面打印失败的图片地址') forerror_urlinerror_pic_urls: print(error_url)

结语

今天的文章用 Python 爬虫制作了一个小脚本,如果小伙伴们觉得文章有趣且有用,点个 转发 支持一下吧!