Python技术
知乎上有许多关于颜值、身材的话题,有些话题的回复数甚至高达几百上千,拥有成千上万的关注者与被浏览数。如果我们在摸鱼的时候欣赏这些话题将花费大量的时间,可以用 Python 制作一个下载知乎回答图片的小脚本,将图片下载到本地。
示例结果:
下载图片
下面代码将读取文件中的图片地址并下载。
def read_file(title): file_name = title + '.txt' pic_urls = [] # 判断文件是否存在 if not os.path.exists(file_name): return pic_urls with open(file_name, 'r') as f: for line in f: url = line.replace("n", ") if url not in pic_urls: pic_urls.append(url) print("文件中共有{}个不重复的 URL".format(len(pic_urls))) return pic_urlsdef download_pic(pic_urls, title): # 创建文件夹 if not os.path.exists(title): os.makedirs(title) error_pic_urls = [] success_pic_num = 0 repeat_pic_num = 0 index = 1 for url in pic_urls: file_name = os.sep.join((title,basename(urlsplit(url)[2]))) if os.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))) if len(error_pic_urls) > 0: print('下面打印失败的图片地址') for error_url in error_pic_urls: print(error_url)
结语
今天的文章用 Python 爬虫制作了一个小脚本,如果小伙伴们觉得文章有趣且有用,点个 转发 支持一下吧!