Python技术

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

python爬虫脚本在哪里找(分享python爬虫万能代码)(1)

示例结果:

python爬虫脚本在哪里找(分享python爬虫万能代码)(2)

下载图片

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

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 爬虫制作了一个小脚本,如果小伙伴们觉得文章有趣且有用,点个 转发 支持一下吧!